Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: mussa от 16 Января 2006, 19:27:26

Название: роловер имеджс
Отправлено: mussa от 16 Января 2006, 19:27:26
из прошлого века проблема - меню с меняющимися кнопками при наведении мышки - картинки разумеется подгружаются прелоадом. Однако, обнаружил, что когда по модему на сайт заходишь, то менюха почему-то тормозит при наведении мышки - то есть кнопки меняют вид с опозданием, в чем может быть дело?
то есть все, работает... только с опозданием... (все кнопки перечислены в теге body, я проверял) весят кнопки по килобайту каждая...
может дело в том, что нужно полностью дождаться загрузки страницы, прежде чем мышкой шевелить?
ведь то что они подгружаются, не значит что они грузятся в первую очередь! но в этом нет своей очевидности...
похоже, единственный выход - это скрипт, который вообще запретил бы грузиться всей остальной странице, прежде чем загрузились кнопки и подкнопки?
Название: роловер имеджс
Отправлено: Greg от 17 Января 2006, 07:06:15
как вариант, в тэге

Однако обрати внимание, чтобы твоя вставка (MM_preloadImages) шла уже после кода JS, вставленного DreamWeaver-ом.
Название: роловер имеджс
Отправлено: mussa от 17 Января 2006, 21:51:00
CGVictor -

так какая разница?!
ну, будет объявлена команда этим картинкам грузиться уже начиная с head  -
это же вовсе не значит, что они неприменно загрузятся все раньше всей остальной страницы!
ведь этот эффект запаздывания (который только вначале появляется, пока мышкой не проведешь по всем кнопкам и не дождеешься их шевеления) очевидно связан как раз с тем что страница еще не загрузалась (а может только на 99% только...

тут решение - это только блокировка загрузки страницы пока стопудов не загрузятся все перечисленные кнопки

commander  -

все-тиаки не могли бы уточнить, об чем речь, сдается мне вы о чем-то другом толковали, нежели CGVictor  ?
Название: роловер имеджс
Отправлено: CGVictor от 18 Января 2006, 10:23:08
mussa
Если картинки действительно мелкие - то всё будет работать нормально.

Если не хочешь - делай как говорит commander: показывай вместо нужного меню слой с "loading", а уже по загрузке заменяй его на нужное содержимое.
Название: роловер имеджс
Отправлено: mussa от 18 Января 2006, 19:34:19
а, только счас понял, что коммандер предлагал делать слой...
но слой мне не годится - дизайн сайта не приемлет - при разном разрешении в разных местах меню окажется (короче, сайт-гармошка)
Название: роловер имеджс
Отправлено: mussa от 18 Января 2006, 22:15:29
можно впрочем их невидимым образом отдельно в невидимом слое загрузить
Название: роловер имеджс
Отправлено: CGVictor от 19 Января 2006, 14:23:06
mussa
Как это связано с "резиновым" дизайном? Никто ж не заставляет position:absolute ставить.
Сделай слой, id="holder", напиши в нем "Loading", размести на месте меню. Где-то - еще один слой, id="realmenu". Выводишь меню скриптом с сервера в realmenu, а body onLoad = "document.getElementById(\'holder\').innerHTML=document.getElementById(\'realmenu\').innerHTML";

Варианты might differ, а общая идея именно такая.