【问题标题】:Remove class when scrolling up or down向上或向下滚动时删除类
【发布时间】:2014-10-20 05:48:21
【问题描述】:

我想要实现的是在向上或向下滚动时删除特定类或隐藏类(以避免滞后)。 我有以下代码:

var $div = $('#div');   
$div.on('mouseenter', '.box', function() {
    $(this).find('span.category').addClass('bg-category');
    $(this).find('.post-options').show();
});

和//请假:

$div.on('mouseleave', '.box', function() {
    $(this).find('span.category').removeClass('bg-category');
    $(this).find('.post-options').hide();
});

基本上,我有很多图像,当鼠标悬停在 .box 上时滚动时,它会显着滞后于页面。所以我想要实现的是不仅在“mouseleave”上而且在向上或向下滚动页面时删除这些类。

类似于 google+ 在内容卡片上滚动时,您会注意到鼠标悬停时链接会亮起,但一旦滚动,它们就会被删除。例如:https://plus.google.com/communities/100354381402619402956

【问题讨论】:

    标签: jquery scroll removeclass mouseenter


    【解决方案1】:

    你可以试试这个:

    var lastScrollTop = 0;
    $(window).scroll(function(event){
       var st = $(this).scrollTop();
       if (st > lastScrollTop){
       // downscroll code
          $("#div").find('.post-options').show();
          $(".box").delay(800).addClass('dummyclass');
       } else {
      // upscroll code
          $("#div").find('.post-options').hide();
          $(".box").delay(800).addClass('dummyclass');
      }
    lastScrollTop = st;
    });
    

    【讨论】:

    • 感谢您的回复,是的,这确实有效,但我忘了提及,如果用户停止滚动,我希望添加类而无需重新悬停在 .box 上,如果您知道我的话什么意思?
    • @Emanradin :当用户停止滚动时,您需要添加的类的名称是什么?您希望将其添加到哪里?
    • 该类称为“bg-category”,它将位于“.box”> span.category > bg-category 下。我不太确定“鼠标悬停”是否有效?
    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2021-11-22
    • 2015-05-18
    • 1970-01-01
    • 2016-02-01
    相关资源
    最近更新 更多