使用window.scroll()时切换行为

时间:2014-01-21 15:14:14

标签: javascript jquery scroll

我正在努力实现这一点,当用户滚动 - 禁用一个元素时。当用户不滚动时,将元素还原为原始状态。

制作第一个要求不是问题,我不知道如何将其转换为以前的状态。 以下是用户滚动时执行操作的代码:

$(window).scroll(function(){
             $('#box').css('display','none');
         });

我尝试使用if-else语句,但我没有让它工作。这是手头上的小提琴:

http://jsfiddle.net/y7ekd/

2 个答案:

答案 0 :(得分:1)

你可以使用一个小技巧(超时技巧

由于滚动不是连续事件,因此在滚动时会多次触发

var timeout;  
$(window).scroll(function(){
       clearTimeout(timeout);
       $('#box').css('display','none');
       timeout = setTimeout(function(){
           $('#box').css('display','block');
       },200);
});

演示----> http://jsfiddle.net/y7ekd/1/

答案 1 :(得分:0)

使用超时限制它,滚动事件会激活许多次,因此必须对其进行限制以避免闪烁。

$(window).on('scroll', function(){
     $('#box').hide();

     clearTimeout($(this).data('timer'));

     $(this).data('timer', setTimeout(function() {
          $('#box').show();             
     }, 300));
});