<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>轮播图示例</title>
    <style>
        /* 设置轮播图容器样式 */
        .carousel {
            width: 600px;
            height: 400px;
            position: relative;
            overflow: hidden;
        }
        /* 设置图片列表样式 */
        .carousel-inner {
            display: flex;
            transition: transform 0.5s ease-in-out;
        }
        /* 设置每张图片的样式 */
        .carousel-item {
            min-width: 100%;
            height: 100%;
        }
        /* 设置导航按钮样式 */
        .prev, .next {
            cursor: pointer;
            position: absolute;
            top: 50%;
            width: auto;
            padding: 16px;
            margin-top: -22px;
            color: white;
            font-weight: bold;
            font-size: 18px;
            transition: 0.6s ease;
            border-radius: 0 3px 3px 0;
            user-select: none;
        }
        .next {
            right: 0;
            border-radius: 3px 0 0 3px;
        }
        .prev:hover, .next:hover {
            background-color: rgba(0, 0, 0, 0.8);
        }
    </style>
</head>
<body>
<div class="carousel">
    <div class="carousel-inner" id="carouselInner">
        <div class="carousel-item">
            <img src="https://via.placeholder.com/600x400?text=Slide+1" alt="Slide 1">
        </div>
        <div class="carousel-item">
            <img src="https://via.placeholder.com/600x400?text=Slide+2" alt="Slide 2">
        </div>
        <div class="carousel-item">
            <img src="https://via.placeholder.com/600x400?text=Slide+3" alt="Slide 3">
        </div>
    </div>
    <a class="prev" onclick="plusSlides(-1)">❮</a>
    <a class="next" onclick="plusSlides(1)">❯</a>
</div>
<script>
    let slideIndex = 1;
    showSlides(slideIndex);
    function plusSlides(n) {
        showSlides(slideIndex += n);
    }
    function showSlides(n) {
        const slides = document.querySelectorAll('.carousel-item');
        if (n > slides.length) { slideIndex = 1 }
        if (n < 1) { slideIndex = slides.length }
        slides.forEach((slide, index) => {
            slide.style.transform = `translateX(${(index - (slideIndex - 1)) * 100}%)`;
        });
    }
</script>
</body>
</html>HTML结构:
<div>标签创建一个轮播图容器.carousel,并在其中包含一个内部容器.carousel-inner,用于容纳所有轮播项.carousel-item。<img>标签展示。CSS样式:
.carousel设置为固定宽度和高度,并使用overflow: hidden隐藏超出部分的内容。.carousel-inner使用display: flex将所有轮播项排列成一行,并添加过渡效果以实现平滑切换。.carousel-item设置为最小宽度100%,确保每张图片占满整个轮播图容器。.prev和.next),并设置样式和鼠标悬停效果。JavaScript逻辑:
slideIndex变量来跟踪当前显示的轮播项。showSlides函数根据slideIndex调整每个轮播项的位置,通过transform: translateX实现水平移动。plusSlides函数用于点击导航按钮时更新slideIndex并调用showSlides更新显示内容。上一篇:html居中
下一篇:html字体颜色
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站