Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   предзагрузка изображений (https://javascript.ru/forum/dom-window/13258-predzagruzka-izobrazhenijj.html)

Larne 23.11.2010 01:02

предзагрузка изображений
 
Есть горизонтальное меню в виде 4х довольно крупных изображений (фотографий). Задача состояла в том, чтобы через определенные промежутки времени (20-30 сек) все 4 изображения менялись последовательно на другие изображения. Написал скрипт, на локалхосте все работает отлично, а на сервере не работает как надо. Видимо от того, что в тот момент когда картинка уже должна смениться, она только начинает загружаться и на месте старой картинки появляется просто белое поле. Решил написать функцию предзагрузки изображений, но вот в чем загвоздка: изображения пунктов меню являются фонами соответствующих пунктов меню (<img> не использовался из-за скругленных углов изображения) и заменяются другими изображениями обращением к атрибуту стиля backgroung. Никак не соображу, как использовать предзагруженные изображения в качестве фона для пунктов меню.

monolithed 23.11.2010 08:05

Как делать предзагрузку изображений написано тысячи статей, пользуйтесь гуглом

Larne 23.11.2010 13:20

спасибо, конечно, что открываете мне глаза на безграничные возможности гугла, но вопрос же состоит не в том как осуществить предзагрузку изображений, а как воспользоваться предзагруженными изображениями в качастве фона элемента.

dmitriymar 24.11.2010 17:25

а чем отличается работа с загружаемыми и с предзагруженными? в первом случае у тебя инет адрес изображения в другом индекс в массиве имидж и всё
var nim=new Image();
nim[1]=адрес1;
nim[2]=адрес2;
.....
и вместо адреса загружаемого ставиш индекс в массиве.только убедись что прелоад из уже загруженны прежде чем начнёш работать с ними

Larne 24.11.2010 23:31

тоесть получается, что вместо например
elem.style.background="url(images/summer/top.jpg) 50% 0 no-repeat"
я могу писать
elem.style.background=nim[1];
или как-то по другому надо задавать фон не через style?

monolithed 25.11.2010 00:50

Цитата:

Сообщение от Larne
тоесть получается, что вместо например
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>

Larne 25.11.2010 02:14

спасибо


Часовой пояс GMT +3, время: 10:29.