向下滚动时jQuery添加类,向上滚动时删除

时间:2013-11-18 11:30:49

标签: jquery scroll switch-statement addclass

所以我有一些代码可以在滚动超过1000px时打开一些指示灯,如果向上滚动它会再次关闭指示灯,这只需添加一个类并删除类...

var lights = jQuery('.scene2 .lights');
jQuery(function () {
    lights.data('switch', 'on');
});
jQuery(window).scroll(function () {
    if (jQuery(document).scrollTop() > 1000) {
        if (jQuery(lights).data('switch') == 'on') {
            jQuery(lights).data('switch', 'off');
            jQuery(lights).stop().removeClass('lightsOff');
            jQuery(lights).stop().addClass('lightsOn');
        }
    } else {
        if (jQuery(lights).data('switch') == 'off') {
            jQuery(lights).data('switch', 'on');
            jQuery(lights).stop().removeClass('lightsOn');
            jQuery(lights).stop().addClass('lightsOff');
        }
    }
});

但我需要多次这样做&它的代码很多,我想知道是否有更短的方法吗?

1 个答案:

答案 0 :(得分:4)

试试这个,

var lastScrollTop = 0;
$(window).scroll(function(event){
   var st = $(this).scrollTop();
   if (st > lastScrollTop){
       // downscroll code
       $('selector').addClass('classname');
   } else {
      // upscroll code
       $('selector').removeClass('classname');
   }
   lastScrollTop = st;
});