LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009
-
21 juin 2010 à 11:11
genepink
Messages postés3Date d'inscriptionjeudi 11 mars 2010StatutMembreDernière intervention14 novembre 2011
-
17 août 2010 à 21:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
genepink
Messages postés3Date d'inscriptionjeudi 11 mars 2010StatutMembreDernière intervention14 novembre 2011 17 août 2010 à 21:46
PS et désolé pour les fautes d'orthographes :S :D
genepink
Messages postés3Date d'inscriptionjeudi 11 mars 2010StatutMembreDernière intervention14 novembre 2011 17 août 2010 à 21:45
Merci à tous pour vos commentaires ! Je suis désolé, je n'ai pas eu trop le temps de me replonger dans le code ces dernières seamines...
JDMCREATOR et MAKEINDESIGN -> le problème est régle, cf l'historique des modifications
LEFAUVE42 -> merci beaucoup pour ton commentaire très instructif !!! Je n'ai réglé que le problème urgent (preload, merci JQuery). Je me pencherai sur l'optimisation du code un peu plus tard.
Pour répondre à certaines de tes questions / commentaires : le $(".block-me").hide(); servait surtout à cacher les images dès l'affichage, pour ne pas qu'elles s'affichent en cas de temps mort durant l'exécution du script. Maintenant, avec le preload, il est incontournable je pense.
Pourquoi 2 float:left ? Parce que les navigateurs ne supportent pas tous le même code...
Pour le reste, tu as tout à fait raison, je m'y pencherai très bientôt...
Merci encore !
MakeinDesign
Messages postés2Date d'inscriptionsamedi 5 juin 2010StatutMembreDernière intervention24 juin 2010 24 juin 2010 à 00:32
Bonsoir,
il ne fonctionne pas avec le navigateur chrome, et je ne vois pas comment changer ce code...
Bonne continuation.
jdmcreator
Messages postés647Date d'inscriptionsamedi 30 décembre 2000StatutMembreDernière intervention20 juillet 20127 23 juin 2010 à 20:14
Est-ce que c'est normal que ça ne fonctionne pas sous Safari 5 ?
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009 21 juin 2010 à 11:11
L'effet est interessant, mais je ne peux m'empecher de relever quelques maladresses dans le code :
- Pourquoi faire un « $(".block-me").hide(); » alors que juste apres tu as une boucle qui parcourt toutes tes images. Ca fait faire deux boucles dans le DOM, dont une pour rien. Tu peux cacher tes images dans la seconde boucle.
- Tu changes l'id de tes images avant de passer a ta fonction block_it() un bout de cet id pour le reconstruire et recuperer l'image. Pourquoi ne pas simplement passer l'image a ta fonction (d'une part ca evite de changer l'id des images, ce qui est un peu intrusif, et d'autre part rechercher un element dans le dom a partir de son id, ca prend du temps pour rien). Tu devrais pouvoir faire pareil pour move_it.
- Tu fais beaucoups de concatenations de chaine pour rien dans tes boucles. tu pourrais faire la plupart en dehors. PAr exemple au lieux de calculer «"url("+img_src+")"» pour chaque div, tu pourrais faire directement «img_src = "url("+$(img).attr("src")+")"; ». Meme chose pour le style (et au fait, pourquoi setter 2 fois le "float: left;" ?).
17 août 2010 à 21:46
17 août 2010 à 21:45
JDMCREATOR et MAKEINDESIGN -> le problème est régle, cf l'historique des modifications
LEFAUVE42 -> merci beaucoup pour ton commentaire très instructif !!! Je n'ai réglé que le problème urgent (preload, merci JQuery). Je me pencherai sur l'optimisation du code un peu plus tard.
Pour répondre à certaines de tes questions / commentaires : le $(".block-me").hide(); servait surtout à cacher les images dès l'affichage, pour ne pas qu'elles s'affichent en cas de temps mort durant l'exécution du script. Maintenant, avec le preload, il est incontournable je pense.
Pourquoi 2 float:left ? Parce que les navigateurs ne supportent pas tous le même code...
Pour le reste, tu as tout à fait raison, je m'y pencherai très bientôt...
Merci encore !
24 juin 2010 à 00:32
il ne fonctionne pas avec le navigateur chrome, et je ne vois pas comment changer ce code...
Bonne continuation.
23 juin 2010 à 20:14
21 juin 2010 à 11:11
- Pourquoi faire un « $(".block-me").hide(); » alors que juste apres tu as une boucle qui parcourt toutes tes images. Ca fait faire deux boucles dans le DOM, dont une pour rien. Tu peux cacher tes images dans la seconde boucle.
- Tu changes l'id de tes images avant de passer a ta fonction block_it() un bout de cet id pour le reconstruire et recuperer l'image. Pourquoi ne pas simplement passer l'image a ta fonction (d'une part ca evite de changer l'id des images, ce qui est un peu intrusif, et d'autre part rechercher un element dans le dom a partir de son id, ca prend du temps pour rien). Tu devrais pouvoir faire pareil pour move_it.
- Tu fais beaucoups de concatenations de chaine pour rien dans tes boucles. tu pourrais faire la plupart en dehors. PAr exemple au lieux de calculer «"url("+img_src+")"» pour chaque div, tu pourrais faire directement «img_src = "url("+$(img).attr("src")+")"; ». Meme chose pour le style (et au fait, pourquoi setter 2 fois le "float: left;" ?).
Bonne optimisation !
Eric