纯 JavaScript 实现图片轮播效果 - 详细教程
<div class='lbt'>
<div class='lbt-div'>
<div class='scroll'>
<!-- 图片展示 -->
<img src='upload/focus2.jpg.jpg' alt='scrollImage' class='img current'>
<img src='upload/focus3.jpg' alt='scrollImage' class='img'>
<img src='upload/focus1.jpg.jpg' alt='scrollImage' class='img'>
<pre><code> <!-- 左右切换 -->
<div class='btns letf'><</div>
<div class='btns right'>></div>
<!-- 小圆点展示 -->
<div class='dots'>
<span class='square'></span>
<span></span>
<span></span>
</div>
</div>
</div>
</div>
</code></pre>
<script>
// 获取元素
var scroll = document.querySelector('.scroll');
var imgs = document.querySelectorAll('.img');
var btns = document.querySelectorAll('.btns');
var dots = document.querySelectorAll('.dots span');
var currentIndex = 0;
// 自动播放
var timer = setInterval(function() {
currentIndex++;
if (currentIndex >= imgs.length) {
currentIndex = 0;
}
changeImg();
}, 2000);
// 切换图片
function changeImg() {
for (var i = 0; i < imgs.length; i++) {
imgs[i].classList.remove('current');
dots[i].classList.remove('square');
}
imgs[currentIndex].classList.add('current');
dots[currentIndex].classList.add('square');
}
// 鼠标悬停暂停播放
scroll.addEventListener('mouseenter', function() {
clearInterval(timer);
});
scroll.addEventListener('mouseleave', function() {
timer = setInterval(function() {
currentIndex++;
if (currentIndex >= imgs.length) {
currentIndex = 0;
}
changeImg();
}, 2000);
});
// 点击切换
btns[0].addEventListener('click', function() {
currentIndex--;
if (currentIndex < 0) {
currentIndex = imgs.length - 1;
}
changeImg();
});
btns[1].addEventListener('click', function() {
currentIndex++;
if (currentIndex >= imgs.length) {
currentIndex = 0;
}
changeImg();
});
// 点击小圆点切换
for (var i = 0; i < dots.length; i++) {
dots[i].addEventListener('click', function() {
currentIndex = Array.from(dots).indexOf(this);
changeImg();
});
}
</script>
原文地址: https://www.cveoy.top/t/topic/noje 著作权归作者所有。请勿转载和采集!