Est-il possible de déclencher une alerte après qu'un utilisateur fait défiler 100 pixels.
Voici ce que j'ai jusqu'ici, mais je sais que je manque de quelque chose;
$(window).scroll(function() { if (document.documentElement.clientHeight + $(document).scrollTop() == "100px") { alert("You've scrolled 100 pixels."); } });
Regardez la fenêtre .scrollTop (renvoie un entier):
$(window).scroll(function() { if ($(this).scrollTop() === 100) { // this refers to window alert("You've scrolled 100 pixels."); } });
Mais si vous avez défilé 102px, il ne déclenchera pas la boîte d'alerte.
Si vous souhaitez simplement déclencher l'alerte une fois qu'une variable globale est définie comme vraie si elle a été déclenchée:
$(function(){ var hasBeenTrigged = false; $(window).scroll(function() { if ($(this).scrollTop() >= 100 && !hasBeenTrigged) { // if scroll is greater/equal then 100 and hasBeenTrigged is set to false. alert("You've scrolled 100 pixels."); hasBeenTrigged = true; } }); });
Ou simplement désélectionner l'événement de défilement une fois que la zone d'alerte a été déclenchée:
$(function(){ $(window).bind("scroll.alert", function() { var $this = $(this); if ($this.scrollTop() >= 100) { alert("You've scrolled 100 pixels."); $this.unbind("scroll.alert"); } }); });
Essaye ça:
$(document).scrollTop() >= 100) { // ... }
scrollTop()
renvoie un entier. Cette version sera évaluée comme vraie une fois que vous avez parcouru 100px, ce qui pourrait être plus approprié.
essayer
document.documentElement.clientHeight + $(document).scrollTop() == 100