防抖和节流 怼烎@ 2023-02-23 03:58 23阅读 0赞 **之前代码:** 滑动右侧A-Z导航条 handlerTouchMove(e) { if (this.touchStatus) { const touchY = e.touches[0].clientY - 79; const letterIndex = Math.floor((touchY - this.startY) / 20); if(letterIndex >= 0 && letterIndex < this.firstLetterList.length){ this.$emit("change-letter", this.firstLetterList[letterIndex]); } } }, **防抖:** handleTouchMove(e){ //如果16ms还有操作就会再次触发touchMove,然后清除timer,重新计时, //所以只有保证16ms内不滑动,不清除timer才会执行$emit操作 if(this.touchStatus){ if(this.timer){ clearTimeout(this.timer) } this.timer = setTimeout(() => { //ref属性,在v-for里面循环生成的时候,是个Arrray,如果要获取dom元素,要用this.$refs[ref值][0]这样的形式 const startY = this.$refs['A'][0].offsetTop //3.拿到第一个元素距离顶部高度 const touchY = e.touches[0].clientY-79 //4.拿到手指触动的位置 const index = Math.floor((touchY-startY)/20) //5.得到字母下标 if(index>=0 && index<this.letters.length){ //6.判断index范围 this.$emit('change',this.letters[index]) } },16) } } **节流:** if (this.touchStatus) { let flag = true if (!flag){ return flag = false } setTimeout(() => { // 函数节流提升性能 const startY = this.$refs['A'][0].offsetTop const touchY = e.touches[0].clientY - 79 const index = Math.floor((touchY - this.startY) / 20) if (index >= 0 && index < this.latters.length) { this.$emit('change', this.latters[index]) } flag = true }, 16) } 参考链接: https://coding.imooc.com/learn/questiondetail/142413.html https://coding.imooc.com/learn/questiondetail/94705.html
相关 防抖和节流 前端开发的过程中,我们经常会需要绑定一些持续触发的事件,如 resize、scroll、mousemove 等等,但有些时候我们并不希望在事件持续触发的过程中那么频繁地去... 梦里梦外;/ 2024年04月18日 21:02/ 0 赞/ 83 阅读
相关 防抖和节流 防抖:debounce(不停滑动鼠标时,数字不会累加,当停止滑动,1000ms之后数字才会累加) let num = 1; let div= docu 秒速五厘米/ 2023年07月17日 02:55/ 0 赞/ 23 阅读
相关 防抖和节流 之前代码: 滑动右侧A-Z导航条 handlerTouchMove(e) { if (this.touchStatus) { 怼烎@/ 2023年02月23日 03:58/ 0 赞/ 24 阅读
相关 防抖和节流 防抖 是为了防止频繁触发的操作,在指定时间内我们让用户的行为只触发一次在第一次点击时/最后一次点击时(只能识别一次) function debounce( 约定不等于承诺〃/ 2023年01月08日 02:06/ 0 赞/ 156 阅读
相关 防抖和节流 防抖(debounce):当持续触发事件时,保证只执行最后一次事件处理函数 > 在给DOM绑定事件时,有些事件我们是无法控制触发频率的。 如鼠标移动事件onmousemo àì夳堔傛蜴生んèń/ 2022年11月05日 08:32/ 0 赞/ 213 阅读
相关 防抖和节流 防抖 所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。 触发高频事件后n秒内函数只会执行一次,如果n秒 待我称王封你为后i/ 2022年08月30日 11:37/ 0 赞/ 225 阅读
相关 防抖和节流 1. 防抖 触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间 \ 思路:每次触发事件时都取消之前的延时调用方法 function 朱雀/ 2022年03月18日 01:44/ 0 赞/ 315 阅读
相关 节流、防抖 节流和防抖主要处理事件处理函数高频调用,减少浏览器负担 节流:尽量减少触发次数,mint-ui上封装了一个方法 <script> var t 向右看齐/ 2022年01月30日 00:39/ 0 赞/ 350 阅读
相关 防抖和节流 防抖和节流 一、什么是防抖 二、防抖使用场景 1.输入框是按键触发请求时 三、什么是节流 四、节流的使用场景 1.鼠标连续 快来打我*/ 2021年09月07日 06:13/ 0 赞/ 495 阅读
相关 防抖节流 vue代码 防抖 // timer用于储存定时器 delayed(){ // 检测定时器 if(this.timer){ 妖狐艹你老母/ 2021年07月24日 18:39/ 0 赞/ 483 阅读
还没有评论,来说两句吧...