2016-12-12 5 views
-1

Ich möchte eine Nachricht warnen, nachdem ich 300 Pixel scrollen und dann eine weitere Nachricht, nachdem ich scroll Pass 600 Pixel.Steuern der Anzahl der Pixel beim Scrollen

Aber im Moment ist es nur Alarm, wenn ich 300 Pixel scrollen. meine js

hier:

var hasBeenTrigged = false; 
$(window).scroll(function() { 
    if ($(this).scrollTop() >= 300 && !hasBeenTrigged) { // if scroll is greater/equal then 100 and hasBeenTrigged is set to false. 
    alert("You've scrolled 300 pixels."); 
    hasBeenTrigged = true; 
    } 
    if ($(this).scrollTop() >= 600 && !hasBeenTrigged) { // if scroll is greater/equal then 100 and hasBeenTrigged is set to false. 
    alert("You've scrolled 600 pixels."); 
    hasBeenTrigged = true; 
    } 
}); 

Hoffnung, die Sie helfen können.

+0

Ihr Problem ist die 'hasBeenTriggered' Flagge. Es ist nach den ersten 300 Pixeln eingestellt. Sie müssen es entweder entfernen, oder haben Sie separate für 300/600px scroll Punkte –

+0

Sie setzen 'hasBeenTrigged' auf wahr in der 1. Bedingung, die die zweite blockiert.' If ($ (this) .scrollTop()> = 600 && ! hasBeenTrigged) 'as' hasBeenTrigged' ist bereits 'true' –

Antwort

1

Sie haben zwei Variablen verwenden hasBeenTriggedAt300 und hasBeenTriggedAt600 So etwas wie folgt aus:

var hasBeenTrigged300 = false; 
var hasBeenTrigged600 = false; 

    $(window).scroll(function() { 
    if ($(this).scrollTop() >= 300 && !hasBeenTrigged300) { // if scroll is greater/equal then 100 and hasBeenTrigged is set to false. 
     alert("You've scrolled 300 pixels."); 
     hasBeenTrigged300 = true; 
    } 
    if ($(this).scrollTop() >= 600 && !hasBeenTrigged600) { // if scroll is greater/equal then 100 and hasBeenTrigged is set to false. 
     alert("You've scrolled 600 pixels."); 
     hasBeenTrigged600 = true; 
     } 
    }); 
+1

Danke, es hat meine Frage gelöst –

1
var hasBeenTriggedFirst = false; 
    var hasBeenTriggedSeccond = false; 
    $(window).scroll(function() { 
    if ($(this).scrollTop() >= 300 && !hasBeenTriggedFirst) { // if scroll is greater/equal then 100 and hasBeenTriggedFirst is set to false. 
     alert("You've scrolled 300 pixels."); 
     hasBeenTriggedFirst = true; 
    } 
    if ($(this).scrollTop() >= 600 && !hasBeenTriggedSeccond) { // if scroll is greater/equal then 100 and hasBeenTriggedSeccond is set to false. 
     alert("You've scrolled 600 pixels."); 
     hasBeenTriggedSeccond = true; 
     } 
    }); 
+0

kann ich sicherlich auch für die Antwort stimmen. –

Verwandte Themen