CSS图片自动轮播是一种网页设计技术,通过CSS动画和JavaScript实现图片的自动切换效果。这种技术可以提升用户体验,使网页内容更加生动和吸引人。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Image Carousel</title>
<style>
.carousel {
width: 100%;
overflow: hidden;
position: relative;
}
.carousel img {
width: 100%;
display: none;
}
.carousel img:first-child {
display: block;
}
@keyframes slide {
0% { transform: translateX(0); }
20% { transform: translateX(0); }
25% { transform: translateX(-100%); }
45% { transform: translateX(-100%); }
50% { transform: translateX(-200%); }
70% { transform: translateX(-200%); }
75% { transform: translateX(-300%); }
95% { transform: translateX(-300%); }
100% { transform: translateX(-400%); }
}
.carousel img {
animation: slide 15s infinite;
}
</style>
</head>
<body>
<div class="carousel">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
<img src="image4.jpg" alt="Image 4">
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Image Carousel with Preload</title>
<style>
.carousel {
width: 100%;
overflow: hidden;
position: relative;
}
.carousel img {
width: 100%;
display: none;
}
.carousel img:first-child {
display: block;
}
@keyframes slide {
0% { transform: translateX(0); }
20% { transform: translateX(0); }
25% { transform: translateX(-100%); }
45% { transform: translateX(-100%); }
50% { transform: translateX(-200%); }
70% { transform: translateX(-200%); }
75% { transform: translateX(-300%); }
95% { transform: translateX(-300%); }
100% { transform: translateX(-400%); }
}
.carousel img {
animation: slide 15s infinite;
}
</style>
</head>
<body>
<div class="carousel">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
<img src="image4.jpg" alt="Image 4">
</div>
<script>
function preloadImages(sources, callback) {
let loadedImages = 0;
sources.forEach(source => {
let img = new Image();
img.onload = () => {
loadedImages++;
if (loadedImages === sources.length) {
callback();
}
};
img.src = source;
});
}
preloadImages(['image1.jpg', 'image2.jpg', 'image3.jpg', 'image4.jpg'], () => {
console.log('All images loaded');
});
</script>
</body>
</html>
通过以上方法,可以有效解决图片轮播中的一些常见问题,提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云