javascript - 仅在滚动过去元素 javascript 后触发事件

标签 javascript

我正在寻找一种仅用于检测我的窗口何时向上滚动超过某个元素(如 div)然后触发事件的 javascript 解决方案。特别是,一旦我滚动过这个元素,我需要显示一个导航栏。

我不能使用 Jquery 或其他库。纯JS。

谢谢!

最佳答案

这是 JSFiddle Demo

您需要选择要作为目标的元素。

var someElement = document.querySelector('whatever');

然后你需要设置一个 scroll window 上的事件监听器对象本身,每次用户滚动时都会触发,然后只需运行 if用于检查屏幕顶部的元素是否大于或等于 0 的语句,如果 true运行以下代码块。
window.onscroll = function(){
    //TOP
    if(someElement.getBoundingClientRect().top <= 0){
        console.log("TRIGGER: top of div reached.");
    }
    //BOTTOM
    if(someElement.getBoundingClientRect().bottom <= 0){
        console.log("TRIGGER: bottom of div reached.");
    }
}

关于javascript - 仅在滚动过去元素 javascript 后触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40409717/

相关文章:

javascript - Angular ui-router 禁用自动滚动以修复闪烁

javascript - 使用 jquery 动态添加和删除 div

javascript - 带有范围选择器的视频播放器可剪辑视频的该部分

javascript - 更改 Bootstrap 导航栏样式

javascript - 自Javascript中的unix时代以来,如何以毫秒为单位获取时间?

javascript - Raphael/Mapael - 由单一图例控制的地 block 和区域

javascript - 为什么我的 momentjs 对象上缺少 toJSON()?

javascript - 在 Three.js 中为合并的几何体使用多种 Material

javascript - 在 ionic 应用程序中共享 PDF

Javascript 比较运算符顺序