js轮播图代码左右切换
时间: 2023-08-15 17:05:50 浏览: 88
以下是一个简单的 JavaScript 轮播图代码,实现左右切换功能:
HTML 代码:
```html
<div class="slider">
<div class="slider-wrapper">
<img src="img1.jpg" alt="image1">
<img src="img2.jpg" alt="image2">
<img src="img3.jpg" alt="image3">
<img src="img4.jpg" alt="image4">
</div>
<a href="#" class="slider-prev">Prev</a>
<a href="#" class="slider-next">Next</a>
</div>
```
CSS 代码:
```css
.slider {
position: relative;
width: 100%;
height: 400px;
overflow: hidden;
}
.slider-wrapper {
position: absolute;
width: 400%;
height: 100%;
left: 0;
transition: left .5s ease-in-out;
}
.slider-wrapper img {
float: left;
width: 25%;
height: 100%;
}
.slider-prev,
.slider-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
font-size: 24px;
color: #fff;
background-color: rgba(0, 0, 0, 0.5);
padding: 10px 20px;
border-radius: 5px;
text-decoration: none;
}
.slider-prev {
left: 0;
}
.slider-next {
right: 0;
}
```
JavaScript 代码:
```javascript
var sliderWrapper = document.querySelector('.slider-wrapper');
var sliderPrev = document.querySelector('.slider-prev');
var sliderNext = document.querySelector('.slider-next');
var slideIndex = 0;
var slideWidth = sliderWrapper.clientWidth / 4;
function moveSlider() {
sliderWrapper.style.left = -slideIndex * slideWidth + 'px';
}
sliderPrev.addEventListener('click', function(e) {
e.preventDefault();
slideIndex--;
if (slideIndex < 0) {
slideIndex = 3;
}
moveSlider();
});
sliderNext.addEventListener('click', function(e) {
e.preventDefault();
slideIndex++;
if (slideIndex > 3) {
slideIndex = 0;
}
moveSlider();
});
```
解释一下代码:
首先,通过 `document.querySelector()` 方法获取轮播图容器、上一个和下一个按钮,并定义初始的图片索引 `slideIndex` 和每张图片的宽度 `slideWidth`。
然后,定义一个 `moveSlider()` 函数,用来移动轮播图容器的位置,使其显示当前图片。该函数中,通过修改 `sliderWrapper` 的 `left` 属性来实现移动,每次移动的距离为 `slideIndex * slideWidth`。
最后,对上一个和下一个按钮分别添加点击事件监听器,当点击时修改 `slideIndex` 的值,再调用 `moveSlider()` 函数来移动轮播图容器。需要注意的是,当 `slideIndex` 的值超出图片数量时,需要将其重置为 0 或图片数量减 1,以实现循环切换的效果。
阅读全文