rit*_*mas 7 javascript javascript-events
众所周知,scroll事件可以通过使用鼠标滚轮,单击滚动条箭头或动态地使用window.scrollTo(left, top)函数来启动.
是否有可能确定导致scroll事件发生的原因?无论是用户干预还是JS代码?
我不认为你可以确定导致滚动的原因.滚动事件仅指示窗口正在滚动,而不是滚动的原因.
但也许您在window.scrollTo()从代码调用之前挂起scroll事件侦听器或设置标志.在Safari中,如果你使用scrollTo(),滚动事件只会触发一次,无论你滚动多少,所以你可以想象这样做:
// somewhere in your code...
isCodedScrollEvent = true;
window.scrollTo(0, 200);
// elsewhere in your code...
function scrollListener(event) {
if( isCodedScrollEvent ) {
// event was caused by code, so handle it differently
// and then flip the flag back to false, so the next
// will be handled normally again
isCodedScrollEvent = false;
} else {
// event was caused by user
}
}
Run Code Online (Sandbox Code Playgroud)
它不漂亮,但它应该工作
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |