jquery - 每次从顶部到达 150px 时,将一个类添加到一组 div

标签 jquery html css scroll addclass

我的 html 页面中有一堆 div,它们都是 block 元素(一个在另一个之上,没有 float ),我想要的是每次这些 div 中的一个从顶部到达 150px窗口,它得到一个类 .active 应用于它。所有这些 div 都有相同的类名,但它们各自有不同的 ID 来区分它们。所以我需要一些 jQuery 代码,它可以对每个 div 执行相同的过程,而不必为每个 div 编写代码。

这是 html:

<div id="steps">
   <div class="step" id="step-1"></div>
   <div class="step" id="step-2"></div>
   <div class="step" id="step-3"></div>
   <div class="step" id="step-4"></div>
</div>

我有可用的 jquery,但它针对一个 ID,因此我需要它更加动态,以便它可以针对每个 ID。总共只有4个步骤。

var distance = $('#step-1').offset().top - 150,
$window = $(window);
$window.scroll(function() {
   if ( $window.scrollTop() >= distance ) {
     $('#step-1').addClass('active');
     }
   });

感谢您的帮助!

最佳答案

$(window).on('scroll', function() {
    var scrolled = $(this).scrollTop();

    $('.step').filter(function() {
         return scrolled >= $(this).offset().top-150;
    }).addClass('active');
});

关于jquery - 每次从顶部到达 150px 时,将一个类添加到一组 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18578386/

相关文章:

javascript - 如何以最少的努力生成多边形尺寸?

javascript - 无法从 jquery 函数在文本区域中添加 ###Name###

php - 在 HTML 和 PHP 中使用单选按钮 'checked' 值

javascript - 防止 WordPress 自动格式化页面 HTML

html - &lt;meta name ="viewport"content ="width=device-width"> 在 iOS 的横向模式下做什么?

css - Z-Index:Divs 仍然以错误的顺序重叠(浏览器范围)

javascript - 如何更改已访问的 cgridview 行的颜色?

javascript - 使用 HTML 标签对数组进行排序

html - 表格中的样式 <th> 在 IE 中不起作用

css - ionic 奇怪的行为