关于onresize函数触发次数的问题

最近再写一个网页,希望当用户改变浏览器大小时触发一个setInterval的计时器,写的时候发现好像通过鼠标拖动改变浏览器大小时该函数不止触发一次,求各位大神告诉其具体原理,还有就是怎么才能解决计时器混乱的问题。小白这里先谢谢各位大佬了0.0

阅读 2.6k
4 个回答

执行前先清空你的setInterval。然后用setTimeout 延迟几百毫秒,再执行你要做的事,因为延迟了一小段时间,对于人来讲,感觉不大,但对于浏览器来讲,节省了性能

计时器混乱问题
var stopSet = setInterval(function(){},time);
然后在需要清楚计时器的时候,用clearInterval(stopSet)

  1. 首先,触发的定时器应该统一管理,可以使用array
  2. 接着,你可以试图减少你操作,比如你可以认为拖动超过10px才真正调用onresize的方法
  3. 一定时间内的操作认为是一次操作,比如16.7ms也就是60fps
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题