纯CSS实现轮播图

简介: 纯CSS实现轮播图

html代码

<!-- 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个空心圆,当播放到第一张图的时候就把实心圆移动到第一个空心圆的位置,依次类推。

  .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;
        }

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

/* 让图片动起来的动画 */
        @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);
            }
        }
 

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

@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;
            }
        }
       transform: translateX(20px);
                opacity: 1;
            }
            100% {
                transform: translateX(20px);
                opacity: 1;
            }
        }


相关文章
|
前端开发 JavaScript 索引
|
JavaScript
jquery和CSS3响应式轮播图插件jcSlider
jcSlider是一款jquery和CSS3响应式轮播图插件。jcSlider使用CSS3过渡动画,它可以和animate.css完美结合,生成60多种轮播图过渡动画效果。
HTML+CSS 实现带轮播图的企业官网页面(记得收藏)
HTML+CSS 实现带轮播图的企业官网页面(记得收藏)
|
移动开发 前端开发 JavaScript
HTML+CSS动画打造酷炫轮播图!(含源码)
HTML+CSS动画打造酷炫轮播图!(含源码)
|
前端开发 UED
超越静态:CSS动画轮播图,引领视觉新体验!
超越静态:CSS动画轮播图,引领视觉新体验!
|
前端开发 容器
使用纯css制作类似轮播图效果
通过纯CSS实现流畅的页面切换效果,利用三个全屏大小的盒子放置于一个宽300vw的容器内。用户可通过点击底部按钮切换不同页面,每个按钮对应一个隐藏的单选按钮,选中时会触发容器的水平位移,从而展现不同的背景色页面。动画效果由`transition`属性完成,平滑过渡至下一个页面。此外,还提供了渐变色生成网站供参考,以丰富页面视觉效果。
312 1
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
安全 JavaScript
旋转木马轮播图 html+css+js
旋转木马轮播图 html+css+js
|
前端开发 JavaScript
一键复制HTML+CSS动画:让轮播图效果酷炫升级!
一键复制HTML+CSS动画:让轮播图效果酷炫升级!

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    537
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    418
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    414
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    268
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    525
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    705
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1295
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    300
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1077
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    491