上中下(左中右)显示三个图片时无缝轮播

mac2024-05-26  30

思路:  假如有三张图 每次到第二张滚第三张的时候在结尾加上第一张, 第三张滚的下一个就是第一张了同时加上第二张,这样就实现了无缝轮播(别打我)

咳咳, 上面的思路确实实现了,但是存在一个致命的问题就是一直轮播会一直在后面添加元素,如果次数较多的时候会导致页面卡顿, 那我们就不能一直加

如果在再填加了第三张的时候是不是已经页面存在六张图了,我们完全可以利用这六张图让他们自己循环实现无缝轮播

if (this.activeIndex >= this.originDatalist.length * 2) { // 当activeIndex 大于初始状态的两倍时归0 防止一直累加导致dataList列表数据过多导致页面卡顿 this.activeIndex = 0 } $(".line-img").removeClass("active") let move = -300 * this.activeIndex; // 一个列表占300高度 if (move === 0) { // 当轮播到最后一个时 让动画时间归0 去除折回的动画 $(".topic-list ul").animate({ "top": -300 * (this.originDatalist.length - 1) // 先让图片0秒回到第一个列表的最后一张图的位置 }, 0) move = -300 * (this.originDatalist.length - 1) - 300 // 修改move的值让图片假装依次滚动下去,实际从第一个列表最后一张图到第二个列表第一张图的动画 this.activeIndex = this.originDatalist.length // 改变当前active的值 防止active不准确 } $(".topic-list ul").animate({ "top": move }, 2000)

 

最新回复(0)