不入虎穴,焉得虎子。要想知道这轮播图的运作原理,还得打下一层基础——了解一个名为animation的属性。
  • 第一步:写出animation属性;
    管他三七二十一,先把这个标签写上再说。然后就出现了下面这一行代码块,乍一看这不是CSS代码中的速写格式吗。没错,animation属性也分很多个子属性,既然有速写格式,那分开也不会错,通常以animation-xxx的形式出现。
animation: name duration timing-function delay iteration-count direction fill-mode;
  • 第二步:分析每一个属性的作用;
    animation-name:动画的名字
    –可以与@keyframes中定义的动画名字绑定
    animation-duration:动画持续时间
    –动画完成一个循环所需要的时间长度;单位s,ms
    animation-timing-function:动画的速度曲线
    –取值有:ease(先快后慢)、linear(匀速)、ease-in(先慢后快)、ease-out(先快后慢)、ease-in-out(先慢后快再慢)、step()(逐帧播放)
    animation-delay:动画延迟执行时间
    –单位s,ms
    animation-iteration-count:动画迭代次数
    –infiniter(无限循环)、默认值为1
    animation-direction:动画方向
    –动画运行是否交替方向或者是重置起点;reverse(顺序反转)、alternate(顺序交替反转)、alternate-reverse(与alternate类似不过第一次不反转)
    animation-fille-mode:填充模式
    –指定了CSS动画在执行前和执行后如何将样式应用到他的目标上;forwards(当前元素在动画结束的最后一帧显示的位置) 、backwards(当前元素在动画结束后再动画开始的位置显示)。

结论:从中我们又发现了一个新的关键字@keyframes,而这个@keyframes才是动画最关键的零件,该关键字在css样式中书写,格式如下:

@keyframes identifier {
        from {

        }
        to {
            
        }
    }

而identifier不难看出是自定义的动画名称,照应上方的animation-name。其中的from和to两个关键字,相信以及不难想到,from是动画开始时的状态,to是动画经过改变之后的状态。

  • 第三步:理解轮播图
    轮播图是什么?
    我们为了方便理解大致可以这样解释,有一个相框,这个相框有一个神奇的功能,他可以每隔一段时间更换一张照片,大家也可以将他理解为电脑桌面的切换屏保。而在轮播图中,我们也需要有一个相框,相框中有一个很长很长的画布,画布上不间断的画着很多张画,而这张画布则会从左往右走,这时,呈现给我们的相框就像在每隔一段时间就换一张画一样。
    理论已经掌握,我们开始实践。
  • 第四步:给出框架往里嵌套
<div class="eye">
        <div class="wrap">
            <div class="item">
                <img src="./p1.png" alt="">
            </div>
            <div class="item">
                <img src="./p2.jpg" alt="">
            </div>
            <div class="item">
                <img src="./p3.jpg" alt="">
            </div>
            <div class="item">
                <img src="./p4.png" alt="">
            </div>
        </div>
    </div>
不难看出,eye类名为相框,wrap类名为画布,而wrap里的每一个div就相当于一幅画。

现在给它们加上css样式:

.eye {
        width: 350px;
        height: 400px;
        border: 5px solid #333;
        margin: 100px auto;
        /* 为防止我们看到相框大小以外的画布,将其他画布区域隐藏 */
        overflow: hidden;
    }
    /* 图片的容器 */
    .wrap {
        width: 1400px;
        height: 400px;
        margin-left: 0;
        /* 
        这里的4指的是有四张图片
        step(4)逐帧播放,此处需注意若不采用step则没有轮播图效果,不妨试试改为linear 
        */
        animation: move 5s infinite steps(4);
    }
    .item {
        width: 350px;
        height: 400px;
        /* 将每一副画浮动到画布上 */
        float: left;
    }
    img {
        width: 350px;
        height: 400px;
    }
    @keyframes move {
        from {
            margin-left: 0px;
        }
        to {
            /* 逐帧播放-1400px */
            margin-left: -1400px;
        }

下面是成品:

❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

html5 全屏图片轮播 html图片轮播怎么设置_轮播图


❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀