Ho una domanda riguardante una funzione che verrà chiamata se l'oggetto si trova all'interno del mio schermo. Ma quando l'oggetto è nel mio schermo, la funzione è stata richiamata e un avviso è stato attivato. Ma se chiudo l'avviso e scorro più in basso, l'evento viene richiamato di nuovo. Non voglio quello. Come posso risolverlo?Funzione di chiamata sullo scorrimento una sola volta
Il mio codice finora:
<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)));
}
Quello che voglio è che la funzione Se solo si chiamerà 1 ora e non su ogni rotolo se l'oggetto è visibile
Yep. il tuo ultimo snippet di codice ha fatto il trucco! Grazie per il tuo aiuto! Accetterò la tua risposta dopo 11 minuti – Rotan075