Ich versuche, dass das Skript, wenn ein Benutzer bis zu einem bestimmten Punkt (1250px von oben) scrollt, eine Funktion "nur EINMAL" ausführt und der Benutzer dann bis zu einem weiteren Punkt von 1250px vom vorherigen Punkt (2500px von oben) weiter scrollt ) führt das Skript die Funktion EINMAL erneut aus.
Mein Skript führt die Funktion jedoch nach 1250 px weiter aus, und ich habe var current_post bereits um weitere 1250 hinzugefügt. Daher sollte var current_post zu diesem Zeitpunkt 2500 sein. Wenn der var-Offset bei 1600 liegt, sollte die Funktion nicht ausgeführt werden, sondern läuft weiter.
Javascript
$(window).scroll(function() {
var offset = $(window).scrollTop();
var current_pos = 1250;
if(offset > current_pos) {
current_pos += 1250;
//do some function
}
});
Bitte helfen Sie mir, meinen Fehler zu erkennen und mein Verständnis dafür zu korrigieren. Danke im Voraus.
3 Antworten
Das Problem ist, dass Sie jedes Mal, wenn das Ereignis ausgelöst wird, current_pos
auf 1250 zurücksetzen. Sie können den aktualisierten Wert also nie verwenden.
Versuchen Sie, die Variable current_pos
außerhalb des Ereignishandlers festzulegen, damit sie nicht bei jedem Ereignis 1250 neu zugewiesen wird.
var current_pos = 1250;
$(window).scroll(function() {
var offset = $(window).scrollTop();
if(offset > current_pos) {
current_pos += 1250;
//do some function
}
});
Platzieren Sie var current_pos=1250
außerhalb Ihres scroll
-Ereignisses wie folgt:
var current_pos = 1250; //paste it here
$(window).scroll(function() {
var offset = $(window).scrollTop();
if(offset > current_pos) {
current_pos += 1250;
//do some function
}
});
Löschen Sie einfach die Variable:
var current_pos = 1250;
$(window).scroll(function() {
var offset = $(window).scrollTop();
console.log(offset);
if(offset > current_pos) {
current_pos += 1250;
//do some function
console.log(current_pos);
}
});