Javascript 页面停止滚动时的触发功能
当浏览器窗口停止滚动时,如何触发函数?通过鼠标滚轮、单击、空格键或箭头键?是否有此类行动的事件?我曾尝试在线搜索,但找不到任何解决方案。我可以使用jQuery解决方案。没有“事件”,但您可以自己创建,如下所示:Javascript 页面停止滚动时的触发功能,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,当浏览器窗口停止滚动时,如何触发函数?通过鼠标滚轮、单击、空格键或箭头键?是否有此类行动的事件?我曾尝试在线搜索,但找不到任何解决方案。我可以使用jQuery解决方案。没有“事件”,但您可以自己创建,如下所示: $(function() { var timer; $(window).scroll(function() { clearTimeout(timer); timer = setTimeout(function() { $(window).trigger
$(function() {
var timer;
$(window).scroll(function() {
clearTimeout(timer);
timer = setTimeout(function() {
$(window).trigger("scrollStop");
}, 250);
});
});
$(window).bind("scrollStop", function() {
alert("No one has scrolled me in 250ms, where's the love?");
});
然后你可以绑定到它,就像这样:
$(function() {
var timer;
$(window).scroll(function() {
clearTimeout(timer);
timer = setTimeout(function() {
$(window).trigger("scrollStop");
}, 250);
});
});
$(window).bind("scrollStop", function() {
alert("No one has scrolled me in 250ms, where's the love?");
});
这将创建一个事件,对此没有“停止”,但您可以定义自己的。。。在这种情况下,“停止”被定义为“250毫秒内未滚动”,您可以根据自己的喜好调整计时器,但这就是想法
另外,如果您只做一件事,不需要事件,只需将代码放在我调用的
$(窗口)处。触发器(“scrollStop”)
,它将在滚动停止后的n
毫秒内运行。所选答案的非jQuery
Javascript版本:
var elem=document.getElementById('test');
(() => {
变量onScrollStop=(evt)=>{
//您将滚动事件设置为evt(获取任何其他信息)
var scrollStopEvt=new CustomEvent('scrolling-stopped',{detail:'foobar stopped:)});
元素调度事件(scrollStopEvt);
}
var scrollStopLag=300//触发onScrollStop之前的等待时间。
var-timerID=0;
常量handleScroll=(evt)=>{
清除间隔(timerID);
timerID=setTimeout(
()=>onScrollStop(evt),
滚动止回阀
)
}
元素addEventListener(“卷轴”,把手卷轴);
})()
元素添加列表器(
“滚动停止”,
(evt)=>console.log(evt.detail)
)
#测试{
高度:300px;
宽度:300px;
溢出:自动;
}
#测试#内部测试{
高度:3000px;
背景:线性梯度(浅绿色0%,浅黄色40%,浅珊瑚100%);
}
在下面的绿色框内滚动:
用键滚动时,停止的定义是什么?该死,比我快15秒;)