轮播循环时出现闪动的原因追溯
在轮播图中使用 translate3d 进行下一页切换时,最后一页切换到第一页时会出现闪动现象。这是因为在最后一页向后切换时,元素在瞬间已经移动到了第一页的位置,但是在过渡动画完成之前,浏览器会继续尝试以最后一页的样式渲染元素,导致视觉上的闪动。
解决方法
为了解决闪动问题,可以修改 changeCur 方法,在最后一页向后切换时,先将过渡时间设为 0s,使元素立即移动到第一页位置,然后将过渡时间恢复为 .3s,再设置当前页码为 1。这样,浏览器在过渡动画完成之前就不会尝试渲染最后一页的样式了。
修改后的 changeCur 方法:
changeCur(add) {
// this.out.style.setProperty('--trans', 'transform');
this.con.style.transitionDuration = '.3s';
//切换cur方法
let cur = this.out.style.getPropertyValue('--cur');
cur = parseInt(cur);
if (add) {
if (cur === this.num) {
this.con.style.transitionDuration = '0s';
this.setCur(0);
this.con.offsetWidth;
this.con.style.transitionDuration = '.3s';
this.setCur(1);
} else {
this.setCur(cur + 1);
}
} else {
if (cur === 1) {
this.con.style.transitionDuration = '0s';
this.setCur(this.num + 1);
this.con.offsetWidth;
this.con.style.transitionDuration = '.3s';
this.setCur(this.num);
} else {
this.setCur(cur - 1);
}
}
}
简化轮播实现
除了上述修改,还可以采用更简单的方法实现轮播功能,直接使用 transform 进行图片切换,简化代码逻辑和渲染流程。
以上就是轮播图最后一页切换到第一页会闪动的原因是什么?如何解决?的详细内容,更多请关注知识资源分享宝库其它相关文章!
版权声明
本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com
发表评论