2010-09-21 3 views
0

Я пытаюсь найти рабочий предварительный загрузчик изображений jQuery, который хорошо воспроизводится с помощью слайд-шоу Marcofolio (здесь http://www.marcofolio.net/webdesign/advanced_jquery_background_image_slideshow.html).Попытка найти предварительный загрузчик изображения jQuery

Это же слайд-шоу используется на веб-сайте Philadelphia здесь: http://www.visitphilly.com/ - но когда я использую свои инструменты для веб-разработчиков, чтобы просмотреть javascript на работе, мне трудно найти, где именно прелоадер является называется.

Я также попытался использовать следующий код предварительной нагрузки, но это, кажется, не помогает ситуации (кажется, загружать наиболее медленно в браузере Safari):

function preload(arrayOfImages) { 
    $(arrayOfImages).each(function(){ 
    }); 
    } 

    preload([ 
    'images/image1.jpg', 
    'images/image2.jpg', 
    'images/image3.jpg', 
    'images/image4.jpg', 
    ]); 

Если кто-то умный может проверить сайт visitphilly они могут увидеть, чего я здесь явно не вижу. В качестве альтернативы, предложение предварительной загрузки плагина было бы оценено, так как я пробовал несколько, которые, похоже, не помогают этому конкретному слайд-шоу.

Спасибо!

+0

Возможный дубликат http://stackoverflow.com/questions/476679/preloading-images-with-jquery?rq=1 –

ответ

4

Вам не нужно JQuery для этого:

var images = [ 
    'a.png', 
    'b.png'//etc 
]; 

var path = 'images/'; 
var i, image, img; 
for(i = 0; image = images[i]; i++) { 
    img = new Image(); 
    img.src = path + image; 
} 
+1

@ l.devries. Но если OP * уже использует 'jQuery' *, то он может также сделать это более чистым способом с 'каждым'. –

+1

@Jacob Relkin Как каждый уборщик? Это не более читаемо и намного медленнее из-за создания функции –

+0

l.devries - я использую ваш javascript, и, похоже, он делает трюк. И я думаю, что даже понимаю, что ты там делаешь ... Круто! Большое вам спасибо за помощь. – heathwaller

0

Попробуйте поджать изображения в правильном порядке.

function preload(arrayOfImages) { 
    var i = 0; 

    function preloadnext() { 
     if (i < arrayOfImages.length) { 
      var img = new Image(); 
      img.onload = preloadnext; 
      img.src = arrayOfImages[++i]; 
     } 
    } 

    preloadnext(); 
} 

Вы также можете указать размер изображения ('новое изображение (ширина, высота)'), но я не уверен, что это может помочь.

+0

спасибо hluk. Я достаточно зелёный и вижу множество способов, которыми люди решают одни и те же проблемы, очень полезно для меня. – heathwaller

0

Я всегда использовал этот фантастический плагин: http://flesler.blogspot.com/2008/01/jquerypreload.html

$.preload([ 'red', 'blue', 'yellow' ], { 
    base:'images/colors/', 
    ext:'.jpg' 
}); 

Помимо того, что она хорошо кодированный - есть проблемы с поджимать изображения в то есть, что этот плагин имеет дело с.