j'ai fait l'inverse donc... mais maintenant il me dit que :
jQuery.preloadImages = function()
{
for(var i = 0; i<arguments.length; i++)
{
jQuery("<img>").attr("src", arguments[i]);
}
}
Que veux tu faire exactement ?
En gros c'est, quand ta page a finit de se charger, tu veux pré-charger d'autre images ?
A quoi cela sert ? (Tu utilise AJAX quelque part ou un iFrame et il y aura ces images-là ?)
c'est parce que j'utilise un roolover sur mes images donc pour éviter que les images "sautent" une seconde le temps qu'elle se charge je voudrais les charger une fois que la page est prête
je connais ta méthode que j'ai découvert sur ce forum en cherchant avant de poster mais il semblerait d'après les posts que ce n'est pas la meilleur façon de faire mais si j'y arrive pas je serais obligé de faire ainsi
Ok si tu tiens absolument à utiliser jQuery..
Afin créer une image, de vérifier tu peux utiliser cette façon :
// Créer une Image
var img = new Image();
$(img)
// Affecter son attribut src (tu met ce que tu veux)
.attr("src","images_design/menu_jsfn_over.png")
// Fonction à appeler quand l'image est chargée
.load(function(){
alert("L'image "+$(this).attr("src")+" est chargée !");
// Dans cette partie, tu, peux mettre ton code roll-over
});
Tu peux aussi utiliser .error et lui passer une fonction à appeler quand l'image ne s'est pas chargée correctement
Ce qui nous donne :
$.prechargementImages = function()
{
var img = new Array();
var i = 0;
while( i<arguments.length )
{
img[i] = new Image();
$(img[i])
.attr("src", arguments[i])
.load(function(){
$("#liste_images").html($("#liste_images").html()+"<br />L'image "+$(this).attr("src")+" est chargée !");
$(this).appendTo($("#liste_images"));
});
i++;
}
};
$.prechargementImages("images_design/menu_jsfn_over.png","images_design/menu_dunkers_over.png");
Tu dois créer un div qui a pour id "liste_images" (c'est juste pour tester que cela marche bien..)
Perso, ça marche chez moi sous Firefox, mais pas sous IE7 ni sous Opéra..
En reprenant ta technique de départ, cela marche partout (tout l'art de me compliquer la vie )
$.prechargementImages = function()
{
var i = 0;
while( i<arguments.length )
{
$("<img>").attr("src", arguments[i]).appendTo($("body"));
i++;
}
};
$.prechargementImages("images_design/menu_jsfn_over.png","images_design/menu_dunkers_over.png");
C'est quand même plus court
Cela dit, je ne comprends pas pourquoi tu disais que ton code de départ ne marchait pas, j'ai juste ajouté .appendTo pour vérifier et tout marche bien !
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Pas d'aide concernant le code par MP, le forum est là pour ça :)