前端-如何利用html快速地制作一个轮播图

不入虎穴,焉得虎子。要想知道这轮播图的运作原理,还得打下一层基础——了解一个名为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;
        }

下面是成品:
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀
图片会每个一段时间无限循环切换
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值