Mam pytanie dotyczące funkcji, która zostanie wywołana, jeśli obiekt znajduje się na moim ekranie. Ale kiedy obiekt znajduje się na moim ekranie, funkcja jest wywoływana, a alarm jest uruchamiany. Ale jeśli zamknę alert i przejdę dalej, wydarzenie zostanie ponownie wywołane. Nie chcę tego. Jak mogę to rozwiązać?Funkcja wywołania na przewijanie tylko raz
Mój kod do tej pory:
<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)));
}
Co chcę jest, że tylko funkcja Jeśli zostanie wywołana 1 raz i nie na każdym zwoju jeśli obiekt jest widoczny.
Yep. Twój ostatni fragment kodu zrobił lewę! Dzięki za pomoc! Przyjmuję twoją odpowiedź po 11 minutach – Rotan075