Je veux que des éléments disparaissent lorsqu'ils font défiler le haut de la page, puis disparaissent pendant qu'ils font défiler sur la page. J'ai écrit du code qui fonctionne, mais je cherche une solution plus élégante. Voici la solution que j'ai travaillé sur jsfiddle: http://jsfiddle.net/wmmead/jdbhv/3/
J'aimerais trouver un morceau de code beaucoup plus court et plus élégant, mais je ne peux tout simplement pas y arriver. Peut-être quelque chose avec un tableau et la méthode ()? Si je mets une classe sur les divs au lieu d'une pièce d'identité, cela devient beaucoup plus court, mais ils disparaissent tous à la fois. Je veux que chaque boîte ait disparaître alors qu'elle fait défiler la page. P>
HTML P>
var box1Top = $('#box1').offset().top; var box2Top = $('#box2').offset().top; var box3Top = $('#box3').offset().top; var box4Top = $('#box4').offset().top; var box5Top = $('#box5').offset().top; var box6Top = $('#box6').offset().top; $(window).scroll(function () { if ((box1Top - $(window).scrollTop()) < 20) { $('#box1').stop().fadeTo(100, 0); } else { $('#box1').stop().fadeTo('fast', 1); } if ((box2Top - $(window).scrollTop()) < 20) { $('#box2').stop().fadeTo(100, 0); } else { $('#box2').stop().fadeTo('fast', 1); } if ((box3Top - $(window).scrollTop()) < 20) { $('#box3').stop().fadeTo(100, 0); } else { $('#box3').stop().fadeTo('fast', 1); } if ((box4Top - $(window).scrollTop()) < 20) { $('#box4').stop().fadeTo(100, 0); } else { $('#box4').stop().fadeTo('fast', 1); } if ((box5Top - $(window).scrollTop()) < 20) { $('#box5').stop().fadeTo(100, 0); } else { $('#box5').stop().fadeTo('fast', 1); } if ((box6Top - $(window).scrollTop()) < 20) { $('#box6').stop().fadeTo(100, 0); } else { $('#box6').stop().fadeTo('fast', 1); } });
3 Réponses :
Eh bien, je suppose simplement définir une classe pour toutes vos divs. Au lieu d'appeler chacun avec un #id p>
Cela les fera tous disparaître, dès que l'on frappe le haut de la fenêtre. Pas l'effet souhaité.
pas vraiment, si vous ajoutez une boucle 'pour' pour vérifier lequel d'entre eux a la position souhaitée
Vous pouvez utiliser un sélecteur d'attributs Vous pouvez prendre une démo ici: p> '[attr = "somosetr"]' code> avec l'utilisation de
.Chafe () code> méthode de jQuery:
Démo h3> p>
Parfait, je savais qu'il y avait une meilleure façon de le faire! Merci!
Cette version de votre jsfiddle est considérée comme meilleure pour plusieurs raisons : P>
Outre le JavaScript, j'ai ajouté des cours en plus des identifiants existants. par exemple: profiter:) p> id = "box1" class = "case" code> p>
Très impressionnant, mais ne vaut pas tellement de complexité à mes besoins ;-)