js scroll 滚动连续多次触发事件怎么只执行一次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js scroll 滚动连续多次触发事件怎么只执行一次相关的知识,希望对你有一定的参考价值。

设置一个全局变量is_running = false
然后再你scroll触发的事件方法的开头加上一个if判断,如果is_running==false就先把is_running=true,然后执行方法。
在执行结束的末尾,把is_running=false改回来表示执行结束,
这相当于加锁和解锁的过程,在is_running==true的期间就算触发了此方法也不会真正执行的
所以连续触发时只执行一次。当然你在方法执行过程中最好有异常捕获,以防执行到一半出错了,is_running 一直是true,然后永远执行不了了
参考技术A

1: 设置一个全局变量is_running = false

2: 然后再你scroll触发的事件方法的开头加上一个if判断,如果is_running==false就先把is_running=true,然后执行方法。

3: 在执行结束的末尾,把is_running=false改回来表示执行结束,

4: 这相当于加锁和解锁的过程,在is_running==true的期间就算触发了此方法也不会真正执行的

5: 所以连续触发时只执行一次。当然你在方法执行过程中最好有异常捕获,以防执行到一半出错了,is_running 一直是true,然后永远执行不了了

1: 设置一个全局变量is_running = false

2: 然后再你scroll触发的事件方法的开头加上一个if判断,如果is_running==false就先把is_running=true,然后执行方法。

3: 在执行结束的末尾,把is_running=false改回来表示执行结束,

4: 这相当于加锁和解锁的过程,在is_running==true的期间就算触发了此方法也不会真正执行的

5: 所以连续触发时只执行一次。当然你在方法执行过程中最好有异常捕获,以防执行到一半出错了,is_running 一直是true,然后永远执行不了了

滚动条的scroll事件和change事件有啥区别

点三角箭头、空白的地方就是change,拖动那个块的时候就是scroll 参考技术A 当你拖动滚动条的过程中,就会不停的触发scroll事件
当你拖动滚动条,然后放开的一瞬间,触发change事件
参考技术B 当用鼠标拖动滑块移动时,scroll事件和change事件都发生,只不过scroll发生在滑块移动的过程中(会多次触发),而change是发生在移动结束的瞬间(只触发一次)。

以上是关于js scroll 滚动连续多次触发事件怎么只执行一次的主要内容,如果未能解决你的问题,请参考以下文章

js scroll 滚动连续多次触发事件只执行一次

滚动条的scroll事件和change事件有啥区别

scroll和wheel事件

js前端性能优化之函数节流和函数防抖

js防抖和节流

js scroll事件不起作用