防抖(王者荣耀回城)
回城按一次读条八秒钟,回到一半,在按一次回城开始重新读条八秒,多次猛按回城,不回家,开启嘲讽,重复开始读条
<button id="btn"> 回城</button>
var BtnBtn = document.getElementById("btn")
var fu = function () {
console.log("回城成功")
}
BtnBtn.onclick = function () {
b()
}
var b = debounce(fu, 8000)
function debounce(fun1, wait) {
var timer;
var timer2;
var i = 0;
return function () { //返回一个函数,使用变量接受后执行
if (timer) { //如存在定时进行清除
clearTimeout(timer)
clearTimeout(timer2)
i=0
}
// 防抖功能
timer = setTimeout(function () {
fun1();
}, wait);
// 回城功能
timer2 = setInterval(function () {
++i;
if (i == 8) {
console.log("______")
clearTimeout(timer2)
i = 0 //闭包变量,暂用内存一直存在,清零
} else {
console.log(i)
}
}, 1000)
}
}
节流(王者荣耀技能读条)
妲己放一技能读条一秒钟,读条期间,多次猛按一技能,只执行第一次,等第一次放的技能放出来之后,再次放技能,再次开始读条
<button id="btn"> 妲己一技能读条</button>
var BtnBtn = document.getElementById("btn")
var fu = function () {
console.log("打他成功")
}
BtnBtn.onclick = function () {
q()
}
var q = throttle(fu, 1000)
function throttle(fun, wait) {
var timer; //开 timer=undefined
var timer2;
var i = 0;
return function () {
if (!timer) { //判断timer是否有值(当前是否已经开启了定时器) ,
timer = setTimeout(function () { //关
fun();
timer = undefined; //开
clearTimeout(timer2)
i = 0;
}, wait)
timer2 = setInterval(function () {
i += 100;
console.log(`${i}毫秒`)
}, 100)
}else{
console.log("正在放技能阿,累死了")
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/4855.html