我正在尝试检测元素是否已滚出并完成以下代码
$(window).bind('scroll', function(){
var $btn = $('#intro div.summary a[href=#top]');
if($(window).scrollTop() > ($btn.offset().top+$btn.height())){
console.log('out');
}
});
我在一些正文中有一个锚点,我希望克隆并在div.intro滚动出来时修复导航。
我的问题是,只要元素不在视图范围内,代码就会触发,但会一直触发。所以我不能再做了,因为还有更多东西会继续射击。
有没有办法在它出局后“开出”并且一旦进入“开启”?除了设置变量之外。
答案 0 :(得分:7)
只有在您可以执行
后执行该事件$(window).one('scroll', function(){
var $btn = $('#intro div.summary a[href=#top]');
if($(window).scrollTop() > ($btn.offset().top+$btn.height())) {
console.log('out');
}
});
答案 1 :(得分:1)
嗯,最简单的解决方案是在事件发生后unbind
事件发生:
$(window).bind('scroll', function(){
var $btn = $('#intro div.summary a[href=#top]');
if($(window).scrollTop() > ($btn.offset().top+$btn.height())) {
console.log('out');
$(window).unbind('scroll');
}
});