如何让滚轮滑动一次只执行一次事件。

同样的问题,就是窗口多次调整后只允许触发一次事件,且延迟一段时间执行,如何解决。

只需要在事件开头加上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

如何在多次触发事件时只执行一次?(函数防抖)相关推荐

  1. css 页面从左侧向右滑入,动画只执行一次

    简单实现了页面进入时的动画: (1)从左侧滑入: (2)只执行一次. <template><div class="big_screen_contant">& ...

  2. Go的sync.Once(三):once.do(函数名)  函数只执行一次

    Once once.do(函数名)  函数只执行一次!执行一次后,其他协程不执行了 // 用once可以保证上面的oncebody被执行一次 package mainimport ("fmt ...

  3. 避免showModalDialog打开的窗口Page_Load只执行一次

    当showModalDialog打开的窗口Page_Load只执行一次,导致 if (!IsPostBack){} 中代码没有执行,查了相关资料,原因在于第一次之后加载都是从缓存中直接获取之前的页面, ...

  4. php多个请求只执行一次,php使用redis的blPop/brPop,一台服务器多个并发,也只能一次一次执行?...

    服务器是使用 nginx + php-fpm 的架构,redis用的是connect来连接,每个网络请求应该都会有单独的 php-fpm 进程.我写了一个循环,每次循环都有 blPop/brPop 和 ...

  5. vue animate bounceInRight 只执行一遍

    touchMove 中左滑 添加bounceInRight ,动画只执行一遍,或者只有某个有动画 解决:第一步:数据出现比动画要慢 在touchEnd中增加延迟,把类名置位空 第二步:把增加bounc ...

  6. python 为什么只执行一次_python只执行一次

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! #!usrbinpython #coding=utf-8 created on ...

  7. 开启Thread线程只执行一次

    代码如下 private static Thread mTaskThread = new Thread(new Runnable() {@Overridepublic void run() {coun ...

  8. ansible 命令只执行一次

    RUN ONCE 通过run_once: true来指定该task只能在某一台机器上执行一次. 可以和delegate_to 结合使用 - command: /opt/application/upgr ...

  9. Android AlarmManager设置多个定时事件时只最后一个有效问题解决

    最近用到了AlarmManager,遇到了问题,当我设置多个定时器时,发现只有一个起作用,百思不得其解,后来在网上找到了原因,把人家的解决办法贴上: AlarmManager的常用方法有三个: (1) ...

  10. shell 脚本中 while 只执行一次

    实例代码 while read line ; do ssh -p20002 $line -o StrictHostKeyChecking=no xxxxxxxxx done < ip.txt w ...

最新文章

  1. ASP.NETmvc常用JQUERY插件【jquery.dataTables.js】
  2. 【bzoj1212】[HNOI2004]L语言 AC自动机
  3. 使用IntelliJ ..达2周,到目前为止一切正常
  4. c语言给定一个字符串匹配,使用C语言解决字符串匹配问题的方法
  5. php mvc 逻辑层在哪,mvc的业务逻辑应该放哪里?
  6. 大厂年薪100万的可视化工程师,水平到底有多牛,看完我服了
  7. 重磅官宣:腾讯宣布再投500亿元助力共同富裕
  8. maven build后Downloading maven-metadata.xml
  9. 转 国内的go get问题的解决
  10. 33. PHP Sessions
  11. 查看Linux是Redhat 还是centos 还是...
  12. ArrayList转换类型为DataTable类型
  13. html日期格式化标签,js日期格式化yyyymmdd
  14. linux CFI接口,Linux系统下的MTD/CFI驱动介绍
  15. 信息学奥赛C++编程:计算分数加减表达式的值
  16. 11.4.3 NOW()函数
  17. 微型计算机拆卸步骤,《微型计算机拆卸》PPT课件.ppt
  18. Barcode Reader在45毫秒内实现条码识别
  19. Zabbix批量增加节点方法(自动发现及Json API)
  20. 计算机网络的基本知识和技术

热门文章

  1. Oracle 更新多字段1
  2. 【纪念】NOIP2018前夕——一些想说的话
  3. JavaScript问题01 js代码放在header和body的区别
  4. Light OJ 1011
  5. Remoting例子-使用配置文件
  6. POJ 1325 Machine Schedule 解题报告
  7. 高效管理 Android 前台服务
  8. 数据损坏了,怎么找回来?用超融合备份一体机啊
  9. PostgreSQL使用函数实现merge功能
  10. ylbtech-Unitity-CS:AnonymousDelegates