所以,我想在滚动时只触发一次函数(使用Scrollstop,由stackoverflow答案给出)
问题是我不能只触发一次这个功能.我尝试了不同的解决方案(.on(),设置一个计数器,将其设置在window.scrollstop函数的外部/内部)但没有任何效果.
我不认为这很困难,但是到目前为止我还没有让它成功.
这是我正在使用的插件
$.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));
});
};
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
$(window).scrollStopped(function(){
if ($(".drawing1").withinViewport()) {
doNothing()
}
})
var doNothing = function() {
$('#drawing1').lazylinepainter('paint');
}
Run Code Online (Sandbox Code Playgroud)
(删除了计数器,因为它不起作用)
PS:我想做的功能只有一次是lazyPaint.它在我们滚动到元素时开始,但在它结束时再次触发.
我想在我的网站上进行动画,只有当用户第一次访问网站时才会如此.我找到了"第一次访问者"代码localStorage,但我没有找到这个.