当前位置:网站首页>防抖函数封装
防抖函数封装
2022-08-04 11:29:00 【要成为光的女人】
在某些场景我们并不需要高频的反馈,毕竟浏览器性能是有限的,不应该浪费在这里。
我们可以在第一次触发事件时,不立即执行函数,而是给出一个期限值,例如3000ms。
- 如果在3000ms 内没有次触发滚动事件,那么就执行函数
- 如果在3000ms 内 在次触发滚动事件,那么当前的计时取消,重新开始计时
效果:如果短时间内大量触发同一事件,只会执行一次函数
//防抖函数封装 参数1:函数 参数2:延时时间
function debounce(fn ,delay){
var timer=null //定义一个timer 为null
return function(){
//如果timer 存在就把它清除掉
if(timer){
clearTimeout(timer)
}
//如果这个timer 不存在就去执行这个函数
timer=setTimeout(fn,delay)
}
}
//使用
//监听窗口滚动事件
window.onscroll=debounce(scrollHandle,3000) //调用这个防抖函数
function scrollHandle(){
var scroolTop=document.documentElement.scrollTo;
}边栏推荐
猜你喜欢

【LeetCode】700.二叉搜索树

【目标检测】yolov2特征提取网络------Darknet19结构解析及tensorflow和pytorch实现

【黄啊码】MySQL入门—1、SQL 的执行流程

Win11 file types, how to change?Win11 modify the file suffix

Redis查询缓存

傅里叶级数与傅里叶变换学习

多表查询

深度学习------戴口罩和不戴口罩
![[Flight Control Development Advanced Course 7] Crazy Shell Open Source Formation UAV - Formation Flight](/img/58/19a50af5e187df0f37a1a3298c029b.png)
[Flight Control Development Advanced Course 7] Crazy Shell Open Source Formation UAV - Formation Flight

Using .NET to simply implement a high-performance clone of Redis (2)
随机推荐
【虹科案例】基于3D相机组装家具
【黄啊码】MySQL入门—2、使用数据定义语言(DDL)操作数据库
*SEO*
中电金信技术实践|分布式事务简说
ESP8266-Arduino编程实例-APDS-9930环境光和趋近感器驱动
表的完整性约束;非外键约束
【目标检测】YOLOv4特征提取网络——CSPDarkNet53结构解析及PyTorch实现
【飞控开发高级教程7】疯壳·开源编队无人机-编队飞行
[Flight Control Development Advanced Course 7] Crazy Shell Open Source Formation UAV - Formation Flight
MySQL不提供数组,只能做成表吗?
BOSS 直聘回应女大学生连遭两次性骚扰:高度重视求职者安全,可通过 App 等举报
Mysql——》类型转换符binary
知网网站地址更换
揭秘交换机市场内幕,“准工业级”猫腻你中招了吗?
*W3C* 标准组织
mongo-导出数据到mysql
小程序实战(三) - head组件的封装与使用
DB2查看执行过长的SQL
你知道吗?那些专属于代码的浪漫~
强烈推荐一款优秀且通用的后台管理系统