2017-09-18 4 views
0

Je fais l'animation JS à l'intérieur si et je ne veux pas l'avoir répété après qu'il atteigne à sa place alors j'ai utilisé $(window).off('scroll'); maintenant tous les éléments après que #container ne peut pas utiliser l'événement de défilement et j'ai essayé de Activer le parchemin mais cela ne fonctionne pas $(window).on('scroll');. Une idée?

$(window).scroll(function() { 
    var hT = $('#container').offset().top, 
     hH = $('#container').outerHeight(), 
     wH = $(window).height(), 
     wS = $(this).scrollTop(); 
    console.log((hT-wH) , wS); 
    if (wS > (hT+hH-wH)){ 
    // some code 
    $(window).off('scroll'); 


    } 

}); 
+0

bien vous dites éteindre tous les événements ... donc si vous voulez seulement faire certains d'entre eux dont vous avez besoin pour éteindre juste que exemple. Regardez dans les espaces de noms. – epascarello

Répondre

1

Votre appel hors délie tous les événements, pas seulement un. Vous devez libérer cette instance. Il se fait soit avec la fonction référence

var myScroll1 = function() { 
    $(window).off("scroll", myScroll1) 
} 
$(window).on("scroll", myScroll1) 

ou namespaces

$(window).on("scroll.scroll1", function() { 
    $(window).off("scroll.scroll1", myScroll1) 
})