предзагрузка изображений
Есть горизонтальное меню в виде 4х довольно крупных изображений (фотографий). Задача состояла в том, чтобы через определенные промежутки времени (20-30 сек) все 4 изображения менялись последовательно на другие изображения. Написал скрипт, на локалхосте все работает отлично, а на сервере не работает как надо. Видимо от того, что в тот момент когда картинка уже должна смениться, она только начинает загружаться и на месте старой картинки появляется просто белое поле. Решил написать функцию предзагрузки изображений, но вот в чем загвоздка: изображения пунктов меню являются фонами соответствующих пунктов меню (<img> не использовался из-за скругленных углов изображения) и заменяются другими изображениями обращением к атрибуту стиля backgroung. Никак не соображу, как использовать предзагруженные изображения в качестве фона для пунктов меню.
|
Как делать предзагрузку изображений написано тысячи статей, пользуйтесь гуглом
|
спасибо, конечно, что открываете мне глаза на безграничные возможности гугла, но вопрос же состоит не в том как осуществить предзагрузку изображений, а как воспользоваться предзагруженными изображениями в качастве фона элемента.
|
а чем отличается работа с загружаемыми и с предзагруженными? в первом случае у тебя инет адрес изображения в другом индекс в массиве имидж и всё
var nim=new Image(); nim[1]=адрес1; nim[2]=адрес2; ..... и вместо адреса загружаемого ставиш индекс в массиве.только убедись что прелоад из уже загруженны прежде чем начнёш работать с ними |
тоесть получается, что вместо например
elem.style.background="url(images/summer/top.jpg) 50% 0 no-repeat" я могу писать elem.style.background=nim[1]; или как-то по другому надо задавать фон не через style? |
Цитата:
<script type="text/javascript"> window.onload = function(){ var array = ['http://www.insidesocal.com/bargain/Tire.jpg', 'http://image.fourwheeler.com/f/9289058/129_0709_01_z+4x4_tire_test+general_altimax_arctic.jpg'], elem = document.body, i = array.length, j = 0, img = document.createElement('img'); while(i--){ //предзагрузка img.src = array[i]; img.style.cssText = 'position: absolute; visibility: hidden'; elem.appendChild(img); //анимация (function(){ ++j<=array.length-1 && (elem.style.cssText = 'background:url('+array[j]+') no-repeat') || (j = -1); window.setTimeout(arguments.callee, 300); })(); } }; </script> |
спасибо
|
Часовой пояс GMT +3, время: 22:23. |