Ich habe eine Frage bezüglich einer Funktion, die aufgerufen wird, wenn das Objekt auf meinem Bildschirm ist. Aber wenn sich das Objekt in meinem Bildschirm befindet, wurde die Funktion aufgerufen und ein Alarm ausgelöst. Aber wenn ich den Alarm schließe und weiter nach unten scrolle, wird das Ereignis erneut aufgerufen. Ich möchte das nicht. Wie kann ich das lösen?Funktion nur beim Scrollen aufrufen
Mein Code so weit:
<div id="wrapper">
scroll down to see the div
</div>
<div id="tester"></div>
JS
$(window).on('scroll',function() {
if (checkVisible($('#tester'))) {
alert("Visible!!!")
} else {
// do nothing
}
});
function checkVisible(elm, eval) {
eval = eval || "object visible";
var viewportHeight = $(window).height(), // Viewport Height
scrolltop = $(window).scrollTop(), // Scroll Top
y = $(elm).offset().top,
elementHeight = $(elm).height();
if (eval == "object visible") return ((y < (viewportHeight + scrolltop)) && (y > (scrolltop - elementHeight)));
if (eval == "above") return ((y < (viewportHeight + scrolltop)));
}
Was ich will, ist, dass die If-Funktion wird nur 1 Mal und nicht auf jedem blättern aufgerufen werden wenn das Objekt sichtbar ist.
Yep verwenden. Dein letzter Code-Snippet hat es geschafft! Danke für deine Hilfe! Ich werde Ihre Antwort nach 11 Minuten annehmen. – Rotan075