问题:用picker-view写了一个三级联动的组件,单独使用就算滑动的时候触摸按住不放开也没有任何问题,但一放到某个页面里面引入使用就会出现抖动回到value的默认值那里。
排查:1.考虑onchange造成的问题,但排查后发现不是,因为由于手没放开,onchange事件并没有调用,并不会造成value数组的改变而造成动画抖动。
2.那么只能一个一个元素排查,这时swiper引起了我的注意,我把所有事件和元素都注释禁止了,swiper轮播图还在自动轮播,这时我变怀疑起来,果然注释之后没问题,那么应该就是autoplay的问题,果然把autoplay设置成false之后问题解决了
3.这时候我便兴致冲冲地把代码里的swiper中的autoplay根据picker-view封装的组件控制开关的布尔值进行取反,但问题还在,这时怎么回事呢?经过又一番捣鼓(悲催),偶然之间我发现了我有一组动画是用js进行控制位置定时移动的,果然问题出现在这(我个人推迟是因为js对data进行更新的时候触发了dom的更新)。
最后的解决方式就是:第一swiper中的autoplay根据picker-view封装的组件控制开关的布尔值进行取反;第二页面动画定时移动函数根据picker-view的开关进行停止和启动。