防抖&节流

防抖

就是设置一个事件触发的间隔时间,如果在这个时间内再次触发改事件,则重新计时,事件只执行最后一次。

// 定义一个全局变量,方便删除定时器
var timer = null 

//在触发点击事件事件(keyup)时
$('#ipt').on('keyup', function() { 

//先清除之前定时器。重新计时
 clearTimeout(timer)

 //用定时器实现防抖
  timer = setTimeout(function() {
     console.log(111)
     }, 500)
 })

节流

设置一个间隔时间,让一个事件只能隔一段时间,才触发一次。

这里是让一个图片跟随鼠标移动

//样式部分
 <style>
    html,
    body {
      margin: 0;
      padding: 0;
      overflow: hidden;
    }

    #angel {
      position: absolute;
    }
  </style>

<body>
  <img src="./angel.gif" alt="" id="angel" />

  <script>
    $(function () {
      // 节流阀,null关
      var timer = null
      var angel = $('#angel')

      //鼠标在页面滑动时,执行事件
      $(document).on('mousemove', function (e) {

        // 判断节流阀是否开着
        if (!timer) {

          //用定时器设置间隔时间
          timer = setTimeout(() => {

            //控制图片定位的位置,实现跟随
            $(angel).css('top', e.pageY + 'px').css('left', e.pageX + 'px')

            //事件结束要把节流阀重新关上
            timer = null

          }, 100);//如果感觉卡顿可以把间隔时间调小。
        }
      })
    })
  </script>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值