函数防抖的两种触发形式

非立即执行:时间触发后,n秒后执行n秒内多次触发事件重新开始计算函数执行时间,时间重置

 

<div id="content" </div>

<script>

    let num = 1;

    let content = document.getElementById('content');

    function count() {

        content.innerHTML = num++;

    };

    function debounce(){

        let timer

        let content = this

        let args =arguments

        return function(){

            if(timer){

            clearInterval(timer)

        }

        //点击后0.5秒执行

        timer = setTimeout(function(){

            count.apply(content,args)

        },500)

        }

    }

立即执行:事件触发函数立即执行,n秒内不继续触发才能继续执行函数效果,表现形式为移动触发,n秒内不移动后,再次触发,函数在执行

<div id="content"</div>

<script>

    let num = 1;

    let content = document.getElementById('content');

    function count() {

        content.innerHTML = num++;

    };

    function debounce(){

        var timer

        return function(){

            if(timer){

            clearTimeout(timer)

        }

        if(!timer){

            count()

        }

        timer = setTimeout(function(){

            timer = undefined

        },500)

        } 

    }

    content.onmousemove =debounce();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值