效果展示:gif 因速度太快展示不够流畅
实现方式
<div class="banner"><img class="img1" :src="image" v-for="(image, index) in imgs" :key="index" /></div><div class="banner"><img class="img2" :src="image" v-for="(image, index) in imgs2" :key="index" /></div><div class="banner"><img class="img3" :src="image" v-for="(image, index) in imgs3" :key="index" /></div>
关键代码
imgs: ['https://file.yunsaup.com/9810B0DBB85C4F86831BB3B42B0BE43A/712ddb9b59aeb366ad5e4dd7ec0cc2bb/%E7%BB%84+11212%402x.png?v=1703216652386','https://file.yunsaup.com/9810B0DBB85C4F86831BB3B42B0BE43A/712ddb9b59aeb366ad5e4dd7ec0cc2bb/%E7%BB%84+11212%402x.png?v=1703216652386'],imgs2: ['https://file.yunsaup.com/9810B0DBB85C4F86831BB3B42B0BE43A/61f587f7d2068ddd91c7675fd0f2effd/%E7%BB%84+11213%402x.png?v=1703227392265','https://file.yunsaup.com/9810B0DBB85C4F86831BB3B42B0BE43A/61f587f7d2068ddd91c7675fd0f2effd/%E7%BB%84+11213%402x.png?v=1703227392265'],imgs3: ['https://file.yunsaup.com/9810B0DBB85C4F86831BB3B42B0BE43A/a4deec65f79880d031044eebdeef8ca8/%E7%BB%84+11214%402x.png?v=1703227419338','https://file.yunsaup.com/9810B0DBB85C4F86831BB3B42B0BE43A/a4deec65f79880d031044eebdeef8ca8/%E7%BB%84+11214%402x.png?v=1703227419338'],interval:null,startInfiniteScroll() {this.interval = setInterval(() => {// 将第一张图片移动到末尾,实现无限滚动效果this.imgs.push(this.imgs.shift())this.imgs2.unshift(this.imgs2.pop())this.imgs3.push(this.imgs3.shift())}, 4000) // 设置滚动间隔时间,单位为毫秒},mounted() {this.startInfiniteScroll()},beforeCreate() {clearInterval(this.interval)this.interval = null}
.banner {width: 100vw;min-width: 1232px;overflow: hidden;white-space: nowrap;display: flex;align-items: center;img {// width: 100%;// height: 100%;height: 87px;object-fit: cover;}.img1 {animation: scrollLeft 5s linear infinite;margin-right: 20px; // 看自己的间距}.img2 {animation: scrollRight 5s linear infinite;margin-right: 20px;}.img3 {animation: scrollLeft 5s linear infinite;margin-right: 20px;}
}@keyframes scrollLeft {0% {transform: translateX(0);}100% {transform: translateX(-100%);}
}@keyframes scrollRight {0% {transform: translateX(-100%);}100% {transform: translateX(0);}
}