Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面停止滚动时的触发功能_Javascript_Jquery_Jquery Events - Fatal编程技术网

Javascript 页面停止滚动时的触发功能

Javascript 页面停止滚动时的触发功能,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,当浏览器窗口停止滚动时,如何触发函数?通过鼠标滚轮、单击、空格键或箭头键?是否有此类行动的事件?我曾尝试在线搜索,但找不到任何解决方案。我可以使用jQuery解决方案。没有“事件”,但您可以自己创建,如下所示: $(function() { var timer; $(window).scroll(function() { clearTimeout(timer); timer = setTimeout(function() { $(window).trigger

当浏览器窗口停止滚动时,如何触发函数?通过鼠标滚轮、单击、空格键或箭头键?是否有此类行动的事件?我曾尝试在线搜索,但找不到任何解决方案。我可以使用jQuery解决方案。

没有“事件”,但您可以自己创建,如下所示:

$(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秒;)