簡體   English   中英

當一個部分接觸到帶有 Vanilla JS 的視口頂部時,如何觸發一個功能?

[英]How can I trigger a function when a section touches the top of the viewport with Vanilla JS?

我基本上希望瀏覽器在用戶滾動時某個部分觸及視口頂部時觸發一個功能,但我不確定如何使用 Vanilla JS 執行此操作。

我找到了一些 jQuery 替代品,但我只是想弄清楚 Javascript 目前是如何工作的,所以我不確定從哪里開始或在谷歌上搜索什么。

以下示例創建一個頁面,其中包含一個 div。 滾動事件處理程序使用Element.getBoundingClientRect()來獲取 div 相對於視口的位置,並在 div 位於或高於視口的頂部邊緣時將 msg 記錄到控制台。

 var handlerFired; window.addEventListener('scroll', function(e){ var containerTop = document.querySelector('.container').getBoundingClientRect().top; if (containerTop <= 0) { if (!handlerFired) { handlerFired = 1; console.log('container at top of viewport or above'); } } if (containerTop > 0) { handlerFired = 0; } });
 body{ height:2000px; } .container{ width:300px; height:200px; border:5px solid red; position: absolute; top: 100px; }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class='container'> <p>scroll window ...</p> </div> </body> </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM