如果可能的话,通过点击滚动条,在Javascript中找到检测页面滚动的最终任务
我有一个页面,用户可以通过我在页面中创建的按钮上下滚动。它通过使用jQuery中的animate函数在页面中的定位点之间跳跃来实现这一点 现在,我有了一些功能,我只想在web浏览器滚动条手动滚动页面时运行这些功能。为了澄清,通过鼠标滚轮或我自己的按钮滚动应该被排除在这个逻辑之外 现在我有了一种检测鼠标滚轮特定动作的方法,它似乎可以工作() 但我不知道如何区分页面内容滚动,这取决于它是由javascript代码还是由浏览器自己的滚动条激活的。例如,上面的代码在通过代码滚动或手动拖动浏览器滚动条的情况下运行。有谁有更好的策略来区分这三种不同事件的检测吗?您可以尝试以下方法:如果可能的话,通过点击滚动条,在Javascript中找到检测页面滚动的最终任务,javascript,jquery,scroll,Javascript,Jquery,Scroll,我有一个页面,用户可以通过我在页面中创建的按钮上下滚动。它通过使用jQuery中的animate函数在页面中的定位点之间跳跃来实现这一点 现在,我有了一些功能,我只想在web浏览器滚动条手动滚动页面时运行这些功能。为了澄清,通过鼠标滚轮或我自己的按钮滚动应该被排除在这个逻辑之外 现在我有了一种检测鼠标滚轮特定动作的方法,它似乎可以工作() 但我不知道如何区分页面内容滚动,这取决于它是由javascript代码还是由浏览器自己的滚动条激活的。例如,上面的代码在通过代码滚动或手动拖动浏览器滚动条的情
window.onscroll = function (event) {
// called when the window is scrolled.
}
如果它与JavaScript启动的滚动没有区别,您可以尝试在变量上标记,以检测它是否是JavaScript启动的滚动,并有条件地执行函数代码。您可以检测事件已启动的位置。如果您有:
<div id="wrapper"><div id="content"></div></div>
然后尝试以下javascript:
function init () {
document.getElementById("wrapper").addEventListener("mousedown", mousedown);
}
function mousedown (e) {
console.log(e.target.id);
}
window.addEventListener("load", init);
您将看到,单击内容将生成“内容”,单击滚动条将生成“包装器”
#wrapper {
width: 320px;
height: 320px;
overflow: scroll;
}
#content {
width: 800px;
height: 800px;
background-color: yellow;
}
function init () {
document.getElementById("wrapper").addEventListener("mousedown", mousedown);
}
function mousedown (e) {
console.log(e.target.id);
}
window.addEventListener("load", init);