【问题标题】:ADD/REMOVE classes to individual divs based on scroll, each div has it's own unique class基于滚动向单个 div 添加/删除类,每个 div 都有自己独特的类
【发布时间】:2020-02-27 06:15:10
【问题描述】:

我正在尝试使用此帖子:Add/remove class with jquery based on vertical scroll? 但似乎无法让它与多个 div 一起使用,每个 div 都有自己的类,并且需要在距顶部不同距离处添加/删除 1 个类。 在高层次上,这是我想要发生的事情:

<div class="div-01">1 class added and 1 class removed when user scrolls down 500px from top and reverse if scrolling up</div>
<div class="div-02">1 class added and 1 class removed when user scrolls down 1000px from top and reverse if scrolling up</div> 
<div class="div-03">1 class added and 1 class removed when user scrolls down 1500px from top and reverse if scrolling up</div>

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    你尝试过这样的事情吗?它的形式很长而且很粗糙,但我有一段时间没有写 jQuery 了,我只是复制了你链接的部分答案。

    编辑

    我已经更新了你发布的小提琴。您可以将“大于”和“小于”合并为一行。

    $(window).scroll(function() {    
        var scroll = $(window).scrollTop();
    
        if (scroll >= 200 && scroll < 800) {
            $(".div-01").addClass("darkHeader");
        } else {
            $(".div-01").removeClass("darkHeader");
        }
        if (scroll >= 1000 && scroll < 1800) {
            $(".div-02").addClass("darkHeader");
        } else {
            $(".div-02").removeClass("darkHeader");
        }
        if (scroll >= 2000 && scroll < 2400) {
            $(".div-03").addClass("darkHeader");
        } else {
            $(".div-03").removeClass("darkHeader");
        }
    });
    .div-01, .div-02, .div-03 {
      background: red;
      height: 1000px;
      width: 500px;
      margin-bottom: 10px;
    } 
    
    .darkHeader {
      background: black;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <div class="div-01"></div>
    <div class="div-02"></div>
    <div class="div-03"></div>

    【讨论】:

    • 好的,我想我找到了我的问题。是的,上面的作品需要调整。我将同一类从 div 传递到 div,在垂直滚动范围内添加/删除它。长话短说,这就是我得到的。 jsfiddle.net/FunkyMarsH/s2zna4r3/11
    • 我会根据您发布的内容调整答案,以便您接受。谢谢!
    • 抱歉,我之前包含了错误的小提琴版本。真的很想像你建议的那样在一行中获得像素滚动的范围,但显然它需要一些调整:jsfiddle.net/FunkyMarsH/s2zna4r3/14
    • @MarsH 问题在于 if 语句的右侧没有滚动变量。我已经更新了sn-p。现在你可以开始了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2015-05-10
    • 2017-01-11
    相关资源
    最近更新 更多