javascript - 检查滚动点每个像素是否滚动

标签 javascript onscroll

我再次需要你的帮助。尝试编写如下代码:

我在屏幕上得到了一个以像素为单位的假想点(假设是 body 的一半),并且我在 body 中得到了一个元素。我想在元素顶部触及假想线时发出警报,并在元素底部离开假想线时发出警报。

我有一些东西可以工作(用于击中线路),但它只能工作几次,但如果我快速滚动它就不起作用。如果我滚动非常非常慢并且恰好出现警报:

$(window).scroll(function () {
    // A POINT I SET On SCREEN --> IN THIS CASE HALF SIZE OF BODY
    var halfBody = $("body").height() / 2;

    if ($(window).scrollTop() == halfBody) alert('HIER');
});

我认为问题在于我尝试匹配的确切像素。我认为通过滚动我并不总是精确的像素。

如何才能做到这一点,以便元素顶部越过线alert('元素顶部击中线')并且元素底部离开线alert('没有元素离开线' ); ?

希望你能理解:)

最佳答案

滚动事件很容易触发,并且处理每个事件都会使您的处理程序不知所措。 尝试使用lodash/下划线 debnounce/threshould 每 X 毫秒处理一次。 在浏览器中进行滚动处理是一种常见的做法。

关于javascript - 检查滚动点每个像素是否滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30596730/

相关文章:

javascript - 按第一个字母的字母顺序对 JSON 进行排序

JavaScript 日期格式转换

javascript - 模板缓存 ExpressJS

javascript - 用户滚动到特定div的底部时,标题应显示

javascript - 如何防止 jQuery onScroll 在scrollTo之后触发

具有多维数组的 Javascript 对象

javascript - 在滚动条上激活字母动画

css - 标题中的导航不会移动到页面滚动时缩小的元素旁边

javascript - 滚动到全彩时的透明标题 - 导航覆盖问题