如demo中所示的轮播图,使用下一页切换,在最后一页切换到第一页面时候,即循环切换时候,如果点击较慢(或多点几次),图片会出现闪动,为什么轮播回退会出现闪动?使用的是translate3d来移动的
如demo中所示的轮播图,使用下一页切换,在最后一页切换到第一页面时候,即循环切换时候,如果点击较慢(或多点几次),图片会出现闪动,为什么轮播回退会出现闪动?使用的是translate3d来移动的
轮播图在循环切换时出现闪动的原因可能有很多,但常见的原因通常与以下几个因素有关:
transition
),那么在轮播图切换时,如果动画或过渡的结束状态没有正确设置,或者切换逻辑不够平滑,就可能导致闪动。在你提供的例子中,使用了 translate3d
来移动图片。虽然 translate3d
通常会触发 GPU 加速来提高性能,但如果切换逻辑或动画处理不当,仍然可能出现闪动。
要解决这个问题,你可以尝试以下方法:
如果以上方法仍然无法解决问题,你可能需要更深入地检查你的代码和逻辑,或者考虑使用现成的轮播图库来避免这类问题。
初步判断是点击过快导致的页面渲染不及时产生的闪烁,开控制台高亮轮播图可以看的更明显,我个人没啥解决闪烁的办法,但解决办法倒是简单,禁止按钮连点就行。
但轮播图一般不用你这种方法做,常见做法是复制一份追加到后面,形成"首尾链接",然后当轮播暂停的时候,把复制的"首"换成真正的首。
而且,直接用现有的库是个更好的解决方案,比如swiper
学习研究也不错
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
我重写了一下changeCur方法。另外您这个轮播 其实有很简单的方法就是直接利用transform去做 ,那样简单明白。