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 滚动连续多次触发事件怎么只执行一次的主要内容,如果未能解决你的问题,请参考以下文章