亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在用戶向下滾動時在 div 上設置類

如何在用戶向下滾動時在 div 上設置類

一只萌萌小番薯 2022-08-27 13:52:56
我需要做一件事。我需要創建一個網站并控制用戶的滾動,并相應地向頁面上的元素添加類,例如這里..www.blogger.com。當用戶向下滾動時,類“active”將添加到各節中。有誰知道任何指示或任何事情?非常感謝,我對JavaScript還不是很友好。
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

不知何故,我管理了這樣的東西,但我不知道它寫得有多好,因為我對JavaScript了解不多。


var sections = [

      "#mainPageSection-1",

      "#mainPageSection-2",

      "#mainPageSection-3"

    ],

    sectionHeights = [

      $("#mainPageSection-1").outerHeight(),

      $("#mainPageSection-2").outerHeight(),

      $("#mainPageSection-3").outerHeight()

    ],

    scrollBreakpoint = 0,

    i = 0;

    $(window).scroll(function() {

      totalView = $(window).height() + $(this).scrollTop();

      if((totalView > scrollBreakpoint) && (i < 3)){

        document.querySelector(sections[i]).classList.add("scrolled");

        scrollBreakpoint += (sectionHeights[i] + $(window).height()/5.5);

        i++;

      }

    });

.mainPageSection{

  height: 800px;

  color:white;

}


#mainPageSection-1{

  background-color: grey;

}


#mainPageSection-2{

  background-color: blue;

}


#mainPageSection-3{

  background-color: red;

}


.scrolled{

  color: black;

  transition: all .5s ease-in-out;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<section class="mainPageSection" id="mainPageSection-1">

  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut vestibulum efficitur pharetra. Duis eget dictum nunc. Donec gravida, nisl ut ultrices malesuada, turpis felis dictum tortor, eu eleifend ante turpis nec metus. Nunc imperdiet ligula eget orci feugiat ultricies. Cras ac ex iaculis, maximus lorem non, luctus nibh. Sed viverra egestas sem, non varius quam maximus non. Fusce nulla quam, tincidunt vitae vulputate mollis, semper eu risus. Praesent vel nisl eu enim ullamcorper congue eget vitae felis. Suspendisse aliquam neque sit amet molestie efficitur. Maecenas ut consectetur purus. Duis eget imperdiet nisl. Praesent ut elit ut tortor laoreet ultricies. Nulla ac orci quam. Curabitur mattis lorem ex, eget laoreet lectus rutrum id. Nulla tincidunt enim vitae lobortis interdum. Donec urna nisi, molestie eu molestie eget, molestie quis diam.</p>

</section>

<section class="mainPageSection" id="mainPageSection-2">

  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut vestibulum efficitur pharetra. Duis eget dictum nunc. Donec gravida, nisl ut ultrices malesuada, turpis felis dictum tortor, eu eleifend ante turpis nec metus. Nunc imperdiet ligula eget orci feugiat ultricies. Cras ac ex iaculis, maximus lorem non, luctus nibh. Sed viverra egestas sem, non varius quam maximus non. Fusce nulla quam, tincidunt vitae vulputate mollis, semper eu risus. Praesent vel nisl eu enim ullamcorper congue eget vitae felis. Suspendisse aliquam neque sit amet molestie efficitur. Maecenas ut consectetur purus. Duis eget imperdiet nisl. Praesent ut elit ut tortor laoreet ultricies. Nulla ac orci quam. Curabitur mattis lorem ex, eget laoreet lectus rutrum id. Nulla tincidunt enim vitae lobortis interdum. Donec urna nisi, molestie eu molestie eget, molestie quis diam.</p>

</section>

<section class="mainPageSection" id="mainPageSection-3">

  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut vestibulum efficitur pharetra. Duis eget dictum nunc. Donec gravida, nisl ut ultrices malesuada, turpis felis dictum tortor, eu eleifend ante turpis nec metus. Nunc imperdiet ligula eget orci feugiat ultricies. Cras ac ex iaculis, maximus lorem non, luctus nibh. Sed viverra egestas sem, non varius quam maximus non. Fusce nulla quam, tincidunt vitae vulputate mollis, semper eu risus. Praesent vel nisl eu enim ullamcorper congue eget vitae felis. Suspendisse aliquam neque sit amet molestie efficitur. Maecenas ut consectetur purus. Duis eget imperdiet nisl. Praesent ut elit ut tortor laoreet ultricies. Nulla ac orci quam. Curabitur mattis lorem ex, eget laoreet lectus rutrum id. Nulla tincidunt enim vitae lobortis interdum. Donec urna nisi, molestie eu molestie eget, molestie quis diam.</p>

</section>


查看完整回答
反對 回復 2022-08-27
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

您可以使用“滾動”事件,這是來自w3schools的示例


const scrollableEl = document.getElementById("scrollable-item")

let x = 0;


scrollableEl.addEventListener('scroll', function(e) {

  document.getElementById("demo").innerHTML = x += 1;

});

div {

  border: 1px solid black;

  width: 200px;

  height: 100px;

  overflow: scroll;

}

<p>Try the scrollbar in div.</p>


<div id="scrollable-item">In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since.

<br><br>

'Whenever you feel like criticizing anyone,' he told me, just remember that all the people in this world haven't had the advantages that you've had.'</div>


<p>Scrolled <span id="demo">0</span> times.</p>


查看完整回答
反對 回復 2022-08-27
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

你可以在 css 類中滾動。如果你想在javascript中處理滾動,那么你可以檢查overflowwindow.scroll

檢查此鏈接 : https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll


查看完整回答
反對 回復 2022-08-27
  • 3 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號