如何在不滚动的情况下触发滚动事件

CTS*_*idt 17 javascript jquery lazy-loading linkedin google-chrome-devtools

我的问题是,如何触发(模拟或某事esle)滚动事件.在我的特殊情况下,我不想通过摧毁所有守恒来加载LinkedIn中的所有守恒,因为太多了!

我不需要PHP或Javascript解决方案.只需在chrome上使用dev-tools即可实现我的目标.

Pan*_*olo 14

或者,您可以手动触发真实scroll事件,如下所示:

el.dispatchEvent(new CustomEvent('scroll'))
Run Code Online (Sandbox Code Playgroud)

与双滚动+1-1像素相比,感觉更糟糕(并且性能更高)......

这应该运行任何一段代码来监听scroll事件.

编辑:要支持IE11或其他旧版浏览器,请考虑使用CustomEventpolyfill等mdn-polyfills

  • 工作完美 - window.dispatchEvent(new CustomEvent('scroll')) (2认同)

Mik*_*ans 11

你绝对需要一个Javascript解决方案.你认为还有什么可以做事件收听/触发?

如果您想要触发滚动事件,只需window.scrollTo(window.scrollX, window.scrollY);在您的开发工具控制台中键入滚动到您已经存在的位置即可.或者,您可以使用CustomEventdispatchEvent函数的组合伪造一个.

如果您想在滚动事件上触发某些内容,请使用滚动侦听window.addEventListener("scroll", function(evt) { ... });并使处理功能执行您需要执行的任何操作.

  • 如果您有一个窗口滚动侦听器(如本答案中定义的侦听器),那么您可以使用以下代码触发它:`var e = document.createEvent('Event'); e.initEvent("滚动", true, true); window.dispatchEvent(e);` (2认同)

Fra*_*ano 11

这不适用于Chrome或Firefox

window.scrollTo(window.scrollX, window.scrollY);
Run Code Online (Sandbox Code Playgroud)

这适用于:

window.scrollTo(window.scrollX, window.scrollY - 1);
window.scrollTo(window.scrollX, window.scrollY + 1);
Run Code Online (Sandbox Code Playgroud)

不花哨,但有效.

请注意,只需要第一行代码,另一行只是将滚动返回到原来的位置.我必须在按钮上触发滚动功能.如果你碰巧点击按钮两次,滚动的效果是可见的,它不是很花哨.这就是我更喜欢添加第二行代码的原因.