如何在用户向下滚动时在 div 上设置类

我需要做一件事。我需要创建一个网站并控制用户的滚动,并相应地向页面上的元素添加类,例如这里..www.blogger.com。当用户向下滚动时,类“active”将添加到各节中。有谁知道任何指示或任何事情?非常感谢,我对JavaScript还不是很友好。


一只萌萌小番薯
浏览 101回答 3
3回答

交互式爱情

不知何故,我管理了这样的东西,但我不知道它写得有多好,因为我对JavaScript了解不多。var sections = [&nbsp; &nbsp; &nbsp; "#mainPageSection-1",&nbsp; &nbsp; &nbsp; "#mainPageSection-2",&nbsp; &nbsp; &nbsp; "#mainPageSection-3"&nbsp; &nbsp; ],&nbsp; &nbsp; sectionHeights = [&nbsp; &nbsp; &nbsp; $("#mainPageSection-1").outerHeight(),&nbsp; &nbsp; &nbsp; $("#mainPageSection-2").outerHeight(),&nbsp; &nbsp; &nbsp; $("#mainPageSection-3").outerHeight()&nbsp; &nbsp; ],&nbsp; &nbsp; scrollBreakpoint = 0,&nbsp; &nbsp; i = 0;&nbsp; &nbsp; $(window).scroll(function() {&nbsp; &nbsp; &nbsp; totalView = $(window).height() + $(this).scrollTop();&nbsp; &nbsp; &nbsp; if((totalView > scrollBreakpoint) && (i < 3)){&nbsp; &nbsp; &nbsp; &nbsp; document.querySelector(sections[i]).classList.add("scrolled");&nbsp; &nbsp; &nbsp; &nbsp; scrollBreakpoint += (sectionHeights[i] + $(window).height()/5.5);&nbsp; &nbsp; &nbsp; &nbsp; i++;&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; });.mainPageSection{&nbsp; height: 800px;&nbsp; color:white;}#mainPageSection-1{&nbsp; background-color: grey;}#mainPageSection-2{&nbsp; background-color: blue;}#mainPageSection-3{&nbsp; background-color: red;}.scrolled{&nbsp; color: black;&nbsp; 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">&nbsp; <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">&nbsp; <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">&nbsp; <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>

千巷猫影

您可以使用“滚动”事件,这是来自w3schools的示例const scrollableEl = document.getElementById("scrollable-item")let x = 0;scrollableEl.addEventListener('scroll', function(e) {&nbsp; document.getElementById("demo").innerHTML = x += 1;});div {&nbsp; border: 1px solid black;&nbsp; width: 200px;&nbsp; height: 100px;&nbsp; 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>

Smart猫小萌

你可以在 css 类中滚动。如果你想在javascript中处理滚动,那么你可以检查overflowwindow.scroll检查此链接 :&nbsp;https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript