焦点图(也称为轮播图)是一种常见的网页设计元素,用于展示一系列图片或内容,并允许用户通过点击或自动切换来查看不同的项。以下是一个简单的JavaScript焦点图效果代码示例,包括HTML、CSS和JavaScript部分。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>焦点图示例</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="slider-container">
<div class="slider">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
<button class="prev-btn">Prev</button>
<button class="next-btn">Next</button>
</div>
<script src="script.js"></script>
</body>
</html>
/* styles.css */
body {
font-family: Arial, sans-serif;
}
.slider-container {
position: relative;
width: 80%;
margin: 0 auto;
}
.slider {
display: flex;
overflow: hidden;
width: 100%;
}
.slider img {
width: 100%;
flex-shrink: 0;
transition: transform 0.5s ease-in-out;
}
.prev-btn, .next-btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
padding: 10px;
background-color: rgba(0, 0, 0, 0.5);
color: white;
border: none;
cursor: pointer;
}
.prev-btn {
left: 10px;
}
.next-btn {
right: 10px;
}
// script.js
document.addEventListener('DOMContentLoaded', function() {
const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slider img');
let currentIndex = 0;
function showSlide(index) {
if (index < 0) {
currentIndex = slides.length - 1;
} else if (index >= slides.length) {
currentIndex = 0;
} else {
currentIndex = index;
}
const offset = -currentIndex * 100;
slider.style.transform = `translateX(${offset}%)`;
}
document.querySelector('.prev-btn').addEventListener('click', () => {
showSlide(currentIndex - 1);
});
document.querySelector('.next-btn').addEventListener('click', () => {
showSlide(currentIndex + 1);
});
// 自动播放功能(可选)
setInterval(() => {
showSlide(currentIndex + 1);
}, 3000);
});
焦点图主要涉及以下几个概念:
setInterval
是否正确设置,并确保没有其他脚本干扰。通过上述代码和解释,你应该能够实现一个基本的焦点图效果,并理解其背后的原理和应用场景。
领取专属 10元无门槛券
手把手带您无忧上云