jQuery实现左右切换全屏轮播图特效
<div class="slider">
<div class="slides">
<img src="image1.jpg" alt="">
<img src="image2.jpg" alt="">
<img src="image3.jpg" alt="">
</div>
<button class="prev">上一张</button>
<button class="next">下一张</button>
</div>
.slider {
position: relative;
width: 100%;
height: 100vh;
overflow: hidden;
}
.slides {
display: flex;
width: 300%; /* 图片宽度为容器的3倍,实现循环 */
height: 100%;
transition: transform 0.5s ease-in-out;
}
.slides img {
width: 33.33%;
height: 100%;
}
.prev, .next {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: #fff;
padding: 10px;
cursor: pointer;
}
.prev {
left: 20px;
}
.next {
right: 20px;
}
$(document).ready(function() {
const $slider = $('.slider');
const $slides = $('.slides');
const $prevBtn = $('.prev');
const $nextBtn = $('.next');
let slideIndex = 0;
const slideWidth = $slides.children().first().width();
function showSlide(index) {
$slides.css('transform', `translateX(-${index * slideWidth}px)`);
slideIndex = index;
}
$prevBtn.click(function() {
slideIndex = (slideIndex - 1 + $slides.children().length) % $slides.children().length;
showSlide(slideIndex);
});
$nextBtn.click(function() {
slideIndex = (slideIndex + 1) % $slides.children().length;
showSlide(slideIndex);
});
// 自动播放
// setInterval(() => {
// $nextBtn.click();
// }, 3000);
});
showSlide
函数来控制图片的平移。transition
属性实现平滑的过渡动画。transform: translateX
属性来实现图片的左右移动。setInterval
实现自动播放。opacity
属性实现淡入淡出效果。你可以根据自己的需求和项目情况,对上述代码进行修改和扩展。例如,你可以添加更多的样式、动画效果,或者集成到现有的项目中。
想了解更多关于jQuery轮播图的实现,欢迎提出您的问题。
我将竭诚为您解答。