实现无限轮播效果,主要思路是在轮播图的首尾各添加一张相同的图片,每次轮播到首尾两张相同的图片时,再次无缝链接到对面的一张同样的图片,就会呈现出无限轮播的效果。
具体步骤如下:
下面提供两个示例代码,分别使用原生JavaScript和jQuery实现轮播图的无限轮播效果。
HTML部分:
<div class="swiper">
<img src="img3.jpg">
<img src="img1.jpg">
<img src="img2.jpg">
<img src="img3.jpg">
<img src="img1.jpg">
</div>
JavaScript部分:
var swiper = document.querySelector('.swiper');
var items = document.querySelectorAll('.swiper img');
var length = items.length;
var index = 1;
swiper.style.width = items[0].offsetWidth + 'px';
swiper.style.transform = 'translate3d(-' + index * items[0].offsetWidth + 'px, 0, 0)';
swiper.addEventListener('transitionend', function() {
if (index >= length - 1) {
index = 1;
swiper.style.transition = 'none';
swiper.style.transform = 'translate3d(-' + index * items[0].offsetWidth + 'px, 0, 0)';
} else if (index <= 0) {
index = length - 2;
swiper.style.transition = 'none';
swiper.style.transform = 'translate3d(-' + index * items[0].offsetWidth + 'px, 0, 0)';
}
});
setInterval(function() {
index++;
swiper.style.transition = 'transform .5s ease-in-out';
swiper.style.transform = 'translate3d(-' + index * items[0].offsetWidth + 'px, 0, 0)';
}, 3000);
HTML部分:
<div class="swiper">
<img src="img3.jpg">
<img src="img1.jpg">
<img src="img2.jpg">
<img src="img3.jpg">
<img src="img1.jpg">
</div>
jQuery部分:
var swiper = $('.swiper');
var items = swiper.find('img');
var length = items.length;
var index = 1;
swiper.css('width', items.eq(0).width() + 'px');
swiper.css('transform', 'translate3d(-' + index * items.eq(0).width() + 'px, 0, 0)');
swiper.on('transitionend', function() {
if (index >= length - 1) {
index = 1;
swiper.css('transition', 'none');
swiper.css('transform', 'translate3d(-' + index * items.eq(0).width() + 'px, 0, 0)');
} else if (index <= 0) {
index = length - 2;
swiper.css('transition', 'none');
swiper.css('transform', 'translate3d(-' + index * items.eq(0).width() + 'px, 0, 0)');
}
});
setInterval(function() {
index++;
swiper.css('transition', 'transform .5s ease-in-out');
swiper.css('transform', 'translate3d(-' + index * items.eq(0).width() + 'px, 0, 0)');
}, 3000);
通过这两个示例代码的学习,相信你已经掌握了基本的JavaScript实现无限轮播效果的方法,可以在实际项目中应用。
本文链接:http://task.lmcjl.com/news/8596.html