Więc chciałbym odpalić funkcję tylko raz na zwoju (używając Scrollstop, wydane przez odpowiedź stackoverflow)zadziałać tylko raz na funkcję przewijania (scrollstop)
Problem polega na tym, że ja nie rozumiem uruchomić funkcję tylko raz. Próbowałem różnych rozwiązań (.on(), ustawienie licznika, ustawienie go na zewnątrz/wewnątrz funkcji window.scrollstop), ale nic nie działało.
Nie sądzę, że to trudne, ale ... Nie udało mi się sprawić, by działało tak daleko.
Oto plugin Używam
$.fn.scrollStopped = function(callback) {
$(this).scroll(function(){
var self = this, $this = $(self);
if ($this.data('scrollTimeout')) {
clearTimeout($this.data('scrollTimeout'));
}
$this.data('scrollTimeout', setTimeout(callback,300,self));
});
};
i tu jest mój kod:
$(window).scrollStopped(function(){
if ($(".drawing1").withinViewport()) {
doNothing()
}
})
var doNothing = function() {
$('#drawing1').lazylinepainter('paint');
}
(usunięto licznik ponieważ nie działa)
PS: funkcja, którą chciałbym zrealizować tylko raz, to LeniPaint. Zaczyna się, gdy przewijamy do elementu, ale po jego zakończeniu strzela ponownie.
, więc twoja funkcja doNothing() faktycznie coś robi? –
@roasted Yep, głupia nazwa funkcji, Wiem: X – Naemy