Javascript .scroll()多久启动一次?

Javascript .scroll()多久启动一次?,javascript,jquery,html,scroll,setinterval,Javascript,Jquery,Html,Scroll,Setinterval,我正在这里建立我的网站: 我知道使用$(window.scroll()是不好的as,这可能会在某些浏览器中导致问题,并且已经阅读了它可能导致的问题 我有一个功能navCheck,它由两部分组成,修复导航(如果你调整浏览器的大小使其更窄,你会看到第二个),并选择哪个导航应该占据“over”状态 我对jQuery很陌生,无法实现John的方法,它不喜欢我把变量放在哪里。因此,我想我应该在navCheck函数中包含一个setInterval,以控制它触发的次数。但我无法承受左导航固定功能的间隔大于1m

我正在这里建立我的网站:

我知道使用
$(window.scroll()是不好的
as,这可能会在某些浏览器中导致问题,并且已经阅读了它可能导致的问题

我有一个功能
navCheck
,它由两部分组成,修复导航(如果你调整浏览器的大小使其更窄,你会看到第二个),并选择哪个导航应该占据“over”状态

我对jQuery很陌生,无法实现John的方法,它不喜欢我把变量放在哪里。因此,我想我应该在navCheck函数中包含一个
setInterval
,以控制它触发的次数。但我无法承受左导航固定功能的间隔大于1ms,否则会出现明显的跳跃

我想知道默认情况下.scroll()启动的频率,以及最好的选择是什么。我是否应该将功能的固定部分移动到一个单独的功能,每1ms触发一次,然后保留功能的“结束”部分,每250ms触发一次?还是让所有的东西每1ms都燃烧一次?这甚至比标准的.scroll()性能有所提高


或者同样,如果您能帮助我实现Johns解决方案,这也将是向前迈出的一步,因为这应该更好,但我不知道如何实现它。

我不知道确切的答案,但我要做的是每次都触发一个console.log语句,以了解实际用例中会发生什么

第二,无论响应是什么,它都可能非常频繁和快速,因此我肯定会尽可能多地限制它,而不会影响用户体验(保持处理器凉爽是件好事,尤其是在移动设备中)


也就是说,我不会使用setInterval()来限制它。我不会在这里描述整个问题,使用setTimeout创建一个限制递归函数只是一个最佳实践,甚至还有代码片段和插件更进一步,比如去抖动:

你真的不需要计数。答案是“很多”,而且是具体实施的

您的目标应该是使用滚动设置状态,然后使用setTimeout在循环中检查该状态

如果你的功能是精简的,那么在
滚动|调整大小|鼠标移动|等
中,没有任何东西可以阻止你使用它们

但当我说“精益”时,我的意思是

在那之外做你的投票。将其设置为60帧/秒或任何您想要的速度。

作为记录,一些浏览器实际上不会给你1ms,他们只会给你最小的间隔。

对我来说,通常是每像素?这看起来像是一个工作!让浏览器以本机方式执行所有宽度计算。所有现代浏览器
window.onscroll = function (e) {
    screen_obj.x = ...;
    screen_obj.y = ... ;
};