如何在多次触发事件时只执行一次?(函数防抖)
如何让滚轮滑动一次只执行一次事件。
同样的问题,就是窗口多次调整后只允许触发一次事件,且延迟一段时间执行,如何解决。
只需要在事件开头加上clearTimeout即可,每次滑动时都清除排队执行的前面等候事件,以最后一次添加的事件为主。
var scrollEle = document.getElementById("inner");
var time;
var data;
scrollEle.onmousewheel = function(e)
{
clearTimeout(time);
time = setTimeout(function()
{
if(e.wheelDelta > 0)
{
if(scrollEle.scrollTop >= 400)
{
data = 0;
(function move()
{
data++;
scrollEle.scrollTop-=20;
if(data < 20)
{
setTimeout(move,16);
}
})();
}
}
else
{
if(scrollEle.scrollTop <= 800)
{
data = 0;
(function move()
{
data++;
scrollEle.scrollTop+=20;
if(data < 20)
{
setTimeout(move,16);
}
})();
}
}
},300);
e.preventDefault();
};
函数节流与函数防抖的分析: https://juejin.im/entry/58c0379e44d9040068dc952f
转载于:https://www.cnblogs.com/cheeseCatMiao/p/7867072.html
如何在多次触发事件时只执行一次?(函数防抖)相关推荐
- css 页面从左侧向右滑入,动画只执行一次
简单实现了页面进入时的动画: (1)从左侧滑入: (2)只执行一次. <template><div class="big_screen_contant">& ...
- Go的sync.Once(三):once.do(函数名) 函数只执行一次
Once once.do(函数名) 函数只执行一次!执行一次后,其他协程不执行了 // 用once可以保证上面的oncebody被执行一次 package mainimport ("fmt ...
- 避免showModalDialog打开的窗口Page_Load只执行一次
当showModalDialog打开的窗口Page_Load只执行一次,导致 if (!IsPostBack){} 中代码没有执行,查了相关资料,原因在于第一次之后加载都是从缓存中直接获取之前的页面, ...
- php多个请求只执行一次,php使用redis的blPop/brPop,一台服务器多个并发,也只能一次一次执行?...
服务器是使用 nginx + php-fpm 的架构,redis用的是connect来连接,每个网络请求应该都会有单独的 php-fpm 进程.我写了一个循环,每次循环都有 blPop/brPop 和 ...
- vue animate bounceInRight 只执行一遍
touchMove 中左滑 添加bounceInRight ,动画只执行一遍,或者只有某个有动画 解决:第一步:数据出现比动画要慢 在touchEnd中增加延迟,把类名置位空 第二步:把增加bounc ...
- python 为什么只执行一次_python只执行一次
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! #!usrbinpython #coding=utf-8 created on ...
- 开启Thread线程只执行一次
代码如下 private static Thread mTaskThread = new Thread(new Runnable() {@Overridepublic void run() {coun ...
- ansible 命令只执行一次
RUN ONCE 通过run_once: true来指定该task只能在某一台机器上执行一次. 可以和delegate_to 结合使用 - command: /opt/application/upgr ...
- Android AlarmManager设置多个定时事件时只最后一个有效问题解决
最近用到了AlarmManager,遇到了问题,当我设置多个定时器时,发现只有一个起作用,百思不得其解,后来在网上找到了原因,把人家的解决办法贴上: AlarmManager的常用方法有三个: (1) ...
- shell 脚本中 while 只执行一次
实例代码 while read line ; do ssh -p20002 $line -o StrictHostKeyChecking=no xxxxxxxxx done < ip.txt w ...
最新文章
- ASP.NETmvc常用JQUERY插件【jquery.dataTables.js】
- 【bzoj1212】[HNOI2004]L语言 AC自动机
- 使用IntelliJ ..达2周,到目前为止一切正常
- c语言给定一个字符串匹配,使用C语言解决字符串匹配问题的方法
- php mvc 逻辑层在哪,mvc的业务逻辑应该放哪里?
- 大厂年薪100万的可视化工程师,水平到底有多牛,看完我服了
- 重磅官宣:腾讯宣布再投500亿元助力共同富裕
- maven build后Downloading maven-metadata.xml
- 转 国内的go get问题的解决
- 33. PHP Sessions
- 查看Linux是Redhat 还是centos 还是...
- ArrayList转换类型为DataTable类型
- html日期格式化标签,js日期格式化yyyymmdd
- linux CFI接口,Linux系统下的MTD/CFI驱动介绍
- 信息学奥赛C++编程:计算分数加减表达式的值
- 11.4.3 NOW()函数
- 微型计算机拆卸步骤,《微型计算机拆卸》PPT课件.ppt
- Barcode Reader在45毫秒内实现条码识别
- Zabbix批量增加节点方法(自动发现及Json API)
- 计算机网络的基本知识和技术