这是我自己目前所知的两种情况
- 是使用animate时由于前置动画没有执行完成就开始执行第二段animate产生的抖动 解决方法在animate()前面添加stop()
$(dome).stop().animate()
,这也是最常见的一种 - 通过监听手指触摸,鼠标滚动等事件,去执行页面动态设置scrollTop的animate操作,在监听时,为了预防多次触发事件,我们都会给事件加上一个节流,animate方法前面也加上了stop(), 但是在ie浏览器中鼠标滚动时还是出现抖动情况,我个人想法是,因为在鼠标滚动时页面还未停止,animate就已经开始执行了,导致animate执行时记录的初始scrollTop位置与鼠标滚动时页面真正停止的位置不符,所以在使用animate时会出现一个小范围回滚抖动的情况。解决方法,在监听方法里面最开始阻止掉事件的默认
event.preventDefault();
就可以了。但是有一个例外,就是Chrome 监听touch类事件报错:无法被动侦听事件preventDefault,是新版本chrome 浏览器报错,导致preventDefault失效,解决方法可以看这个https://blog.csdn.net/lijingshan34/article/details/88350456 给事件进行一个声明,声明事件不是一个被动事件。
一起学习一起进步!记录学习中一点一滴!