我有一些代码可以检测元素是否在视口中,然后触发一些代码,它通过计算滚动顶部的距离来实现这一点,我遇到的问题是重新运行代码每当一个滚动事件发生并且元素位于折叠之上时,是否有一种方法可以使它只发射一次?
$(document).ready(function(){
$(document).scroll(function(){
var scrollTop = $(window).scrollTop(),
elementOffset = $('.numbers').offset().top,
distance = (elementOffset - scrollTop);
if(distance < $(window).height()){
$('.ones').delay(1000).hide(1000, function(){
$(this).html('6').show(1000, function(){
$(this).delay(15000).hide(1000, function(){
$(this).html('5').show(1000);
});
});
});
}else{
return false;
}
});
});
答案 0 :(得分:1)
添加
flag=true
在文件准备就绪后直接在你的
中检查if (distance<... && flag===true)
并在if子句
中将其设置为falseflag = false