今天给大家封装一个简单的轮播图,可以点击下一张上一张以及自动轮播
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>走马灯示例</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f9f9f9;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.carousel-container {
position: relative;
width: 80%;
max-width: 600px;
overflow: hidden;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.carousel {
display: flex;
transition: transform 0.5s ease;
}
.carousel-item {
min-width: 100%;
box-sizing: border-box;
padding: 20px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 10px;
text-align: center;
}
.carousel-button {
position: absolute;
top: 50%;
transform: translateY(-50%);
background-color: rgba(0, 0, 0, 0.5);
border: none;
color: #fff;
padding: 10px;
cursor: pointer;
border-radius: 50%;
font-size: 18px;
}
.carousel-button.prev {
left: 10px;
}
.carousel-button.next {
right: 10px;
}
.carousel-button:hover {
background-color: rgba(0, 0, 0, 0.7);
}
</style>
</head>
<body>
<div class="carousel-container">
<div class="carousel">
<div class="carousel-item">项目 1</div>
<div class="carousel-item">项目 2</div>
<div class="carousel-item">项目 3</div>
<div class="carousel-item">项目 4</div>
<div class="carousel-item">项目 5</div>
</div>
<button class="carousel-button prev" onclick="prevSlide()">❮</button>
<button class="carousel-button next" onclick="nextSlide()">❯</button>
</div>
<script>
var currentIndex = 0;
function showSlide(index) {
var carousel = document.querySelector('.carousel');
var items = document.querySelectorAll('.carousel-item');
var totalItems = items.length;
if (index >= totalItems) {
currentIndex = 0;
} else if (index < 0) {
currentIndex = totalItems - 1;
} else {
currentIndex = index;
}
var offset = -currentIndex * 100;
carousel.style.transform = 'translateX(' + offset + '%)';
}
function nextSlide() {
showSlide(currentIndex + 1);
}
function prevSlide() {
showSlide(currentIndex - 1);
}
// 自动播放功能
setInterval(function() {
nextSlide();
}, 3000); // 每3秒切换一次
</script>
</body>
</html>
如上图所示的效果,需要修改下样式更好看
我是小辉,谢谢大家关注