千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 纯CSS实现轮播图

纯CSS实现轮播图

来源:千锋教育
发布人:wjy
时间: 2022-06-02 09:48:00 1654134480

各位小伙伴们,今天我们来学习一下轮播图。轮播图是我们写网页当中经常出现的一个效果,基本上各个网站上都会有这个效果。那么一提到轮播图大家脑子里的第一反应是不是用js来实现呀。

 那今天这篇文章呢我们就不按常理出牌,不用js来写轮播图,而是利用纯css实现轮播图,听起来是不是很厉害的样子,纯css竟然能写出轮播图的效果,那么到底应该怎么写呢?接下来废话不多说,上代码。

纯CSS实现轮播图

最后实现的效果:<img src="C:\Users\Administrator\Desktop\未命名项目_media\未命名项目.gif" alt="未命名项目"  />

## html代码

```text
<!-- slide是轮播图区域 -->
    <div class="slide">
        <!--  swiper里面放的是图片-->
        <ul class="swiper">
            <li><img src="img/1.jpg" alt=""></li>
            <li><img src="img/2.jpg" alt=""></li>
            <li><img src="img/3.jpg" alt=""></li>
            <li><img src="img/4.jpg" alt=""></li>
            <li><img src="img/1.jpg" alt=""></li>
        </ul>
        <!-- 这里是轮播图上的小圆点 -->
        <div class="circle">
            <div class="active"></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
        </div>
    </div>
```

注意点:

第一点:要想实现无缝衔接,ul里面放的第一张图和最后一张图要一致。千万不要写错哦 ,可以看到我的第一个li里面放的是1.jpg,最后一个li也是1.jpg。

第二点:带有类名active的是激活之后的实心白点。没有带类名的就是默认的空心圆。总共有4张图轮播,所有创建了4个空心圆,当播放到第一张图的时候就把实心圆移动到第一个空心圆的位置,依次类推。

## css代码:

```text
       .slide {
            /* 写相对定位是因为一会轮播图上的小圆点需要做绝对定位 */
            position: relative;
            /* 让轮播图在页面中居中 */
            margin: auto;
            /* 宽度和高度就是一张图的宽和高 */
            width: 300px;
            height: 200px;
            /* 只显示一张图,其他超出盒子的图片先隐藏掉 */
            overflow: hidden;
        }

        ul {
            list-style: none;
            /* 宽度尽量写大,确保能放下所有的图片 */
            width: 9999px;
            /* 控制ul开始做位置移动(利用css动画特性来实现===核心代码) */
            animation: swiperRun 10s infinite 2s running;
        }

        li {
            width: 300px;
            height: 200px;
            float: left;
        }
        img {
            width: 100%;
            height: 100%;
        }
        .circle {
            width: 100px;
            position: absolute;
            margin: auto;
            left: 0;
            right: 0;
            bottom: 10px;

        }
        .circle div {
            box-sizing: border-box;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: 1px solid white;
            float: left;
            margin: 0 5px;

        }
        /* 鼠标滑过暂停播放 */
        .slide:hover ul,.slide:hover .active{
            animation-play-state: paused;
            cursor: pointer;
        }
        .circle .active {
            opacity: 1;
            transform: translateX(20px);
            background-color: #FFF;
            animation: circleRun 10s infinite 2s running;
        }
```

## 创建动画让图片和白点都动起来(这里是核心代码)

```text
/* 让图片动起来的动画 */
        @keyframes swiperRun {
            /* 第一张 */
            0% {
                transform: translateX(0px);
            }
            /* 第二张 */
            5% {
                transform: translateX(-300px);
            }

            25% {
                transform: translateX(-300px);
            }
            /* 第三张 */
            30% {
                transform: translateX(-600px);
            }

            50% {
                transform: translateX(-600px);
            }
            /* 第四张 */
            55% {
                transform: translateX(-900px);
            }

            75% {
                transform: translateX(-900px);
            }
            /* 第五张 */
            80% {
                transform: translateX(-1200px);
            }

            100% {
                transform: translateX(-1200px);
            }
        }
```

让白色实心圆点动起来的动画:

```text
@keyframes circleRun {
            /* 第一个点 */
            0% {
                transform: translateX(20px);
                opacity: 1;
            }
            /* 第二个点 */
            5% {
                transform: translateX(40px);
                opacity: 1;
            }
            25% {
                transform: translateX(40px);
                opacity: 1;
            }
            /* 第三个点 */
            30% {
                transform: translateX(60px);
                opacity: 1;
            }
            50% {
                transform: translateX(60px);
                opacity: 1;
            }
            /* 第四个点 */
            55% {
                transform: translateX(80px);
                opacity: 1;
            }

            75% {
                transform: translateX(80px);
                opacity: 1;
            }
            77% {
                transform: translateX(19px);
                opacity: 0;
            }
            /* 第五个点  移出去 */
            80% {
                transform: translateX(20px);
                opacity: 1;
            }
            100% {
                transform: translateX(20px);
                opacity: 1;
            }
        }
```

更多关于“web前端培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的提升班,高品质课程助理你实现梦想。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT