Мульти предзагрузка изображений
Столкнулся с проблемой.
Надо сначала при заходе на страницу подгрузить 3 изображения, а уж после этого их показать.
$("#loader").show(); // показываем лодаер
$("#left .image_look").css('opacity','0.5');
$("#left .image_look").load('/looks/doll',function(){ // ждем загрузки изображения
$("#left .image_look #bg").css('display','block');
$("#left .image_look #i55").css('display','block');
$("#left .image_look #i51").css('display','block');
$("#loader").hide();
$("#left .image_look").css('opacity','1');
});
не помогло так же и не помогло вложеный лоад
$("#left .image_look #bg").load(function(){
$("#left .image_look #i55").load(function(){
$("#left .image_look #i51").load(function(){
$("#left .image_look #bg").css('display','block');
$("#left .image_look #i55").css('display','block');
$("#left .image_look #i51").css('display','block');
$("#loader").hide();
$("#left .image_look").css('opacity','1');
});
});
});
Заранее спасибо! |
Цитата:
var a=[
'http://javascript.ru/forum/images/smilies/smile.gif',
'http://javascript.ru/forum/images/smilies/laugh.gif',
'http://javascript.ru/forum/images/smilies/yes4.gif'
];
var ai=[];
for(var i=0; i<a.length; i++){
ai[i] = new Image();
ai[i].src = a[i];
}
|
С callback
//предзагрузчик изображений
$.preloadImages = function () {
if (typeof arguments[arguments.length - 1] == 'function') {
var callback = arguments[arguments.length - 1];
} else {
var callback = false;
}
if (typeof arguments[0] == 'object') {
var images = arguments[0];
var n = images.length;
} else {
var images = arguments;
var n = images.length - 1;
}
var not_loaded = n;
for (var i = 0; i < n; i++) {
$(new Image()).load(function() {
if (--not_loaded < 1 && typeof callback == 'function') {
callback();
}
}).attr('src', images[i]);
}
}
|
Спасибо, помог 2й вариант, 1й тоже работает, но немного не так как я хочу)
|
С callback
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки
01 //предзагрузчик изображений
02 $.preloadImages = function () {
А как его запускать? |
Цитата:
preloadImages(
'http://javascript.ru/forum/images/smilies/smile.gif',
'http://javascript.ru/forum/images/smilies/laugh.gif',
function() {
alert('все загрузилось');
}
);
или так:
preloadImages([
'http://javascript.ru/forum/images/smilies/smile.gif',
'http://javascript.ru/forum/images/smilies/laugh.gif',
],
function() {
alert('все загрузилось');
}
);
вот тока есть недостаток, если одно из изображений не удалось загрузить, то и калбек никогда не будет вызван |
| Часовой пояс GMT +3, время: 15:11. |