2010-09-21 8 views
0

J'essaie de trouver un préchargeur d'image jQuery qui fonctionne bien avec le diaporama Marcofolio (ici http://www.marcofolio.net/webdesign/advanced_jquery_background_image_slideshow.html).Essayer de trouver un préchargeur d'image jQuery

Le même diaporama est utilisé sur le site Web de Philadelphie ici: http://www.visitphilly.com/ - mais lorsque j'utilise mes outils de développement Web pour voir le javascript au travail, j'ai du mal à comprendre exactement où le préchargement est un appelé.

J'ai aussi essayé d'utiliser le code de pré-charge suivante, mais il ne semble pas aider la situation (semble charger plus lentement dans le navigateur Safari):

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

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

Si quelqu'un d'intelligent peut inspecter le site visitphilly élément qu'ils peuvent être en mesure de voir ce que je suis si évidemment manquant ici. Alternativement, une suggestion de plugin de préchargement serait appréciée, comme j'ai essayé quelques-uns qui ne semblent pas aider ce diaporama particulier.

Merci!

+0

duplication possible de http://stackoverflow.com/questions/476679/preloading-images-with-jquery?rq=1 –

Répondre

4

Vous n'avez pas besoin jQuery pour que:

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, mais si l'OP * utilise déjà jQuery', alors il pourrait aussi bien le faire de la manière la plus propre avec «chacun». –

+1

@Jacob Relkin Comment est chaque nettoyant? Ce n'est pas plus lisible et beaucoup plus lent à cause de la création de la fonction. –

+0

l.devries - J'utilise votre javascript et ça semble faire l'affaire. Et je pense même que je comprends ce que tu fais là ... Cool! Merci beaucoup pour votre aide. – heathwaller

0

Essayez de précharger les images dans le bon ordre.

function preload(arrayOfImages) { 
    var i = 0; 

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

    preloadnext(); 
} 

Vous pouvez également spécifier la taille d'image (« nouvelle image (largeur, hauteur) ») mais je ne suis pas sûr si cela peut aider.

+0

merci hluk. Je suis assez vert à ce sujet et voir la variété des façons dont les gens résolvent les mêmes problèmes est très utile pour moi. – heathwaller

0

J'ai toujours utilisé ce plugin fantastique: http://flesler.blogspot.com/2008/01/jquerypreload.html

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

Outre le fait qu'il est bien codé - il y a des problèmes avec des images préchargement à-dire que cette traite plugin avec.

Questions connexes