深入css3帧动画实现ps时间轴动画效果steps()(前端网备份)

在应用 CSS3 渐变/动画时,有个控制时间的属性 <timing-function> 。它的取值中除了常用到的 三次贝塞尔曲线 以外,还有个让人比较困惑的 steps() 函数。

steps() 第一个参数 number 为指定的间隔数(必须是正整数),即把动画分为 n 步阶段性展示,第二个参数默认为 end,设置最后一步的状态,start 为结束时的状态,end 为开始时的状态。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>spirit动画</title>
        <link rel="stylesheet" href="">
        <style>
        .bird{background: url(https://cdn.files.qdfuns.com/note/content/picture/201905/28/145522gd9yxe94l5px8222.jpg) -100% 0;
        width: 140px;
        height:85px;
        animation: bird 4s steps(1,end) 1 forwards ;
         }
        @keyframes bird{
           0% {
            background-position: 0 0;
            }
            10%{
                background-position: -100% 0;
            }
            20%{
                background-position: -200% 0;
            }
            30%{
                background-position: -300% 0;
            }
            50%{
                background-position: 0 100%;
            }
            60%{
                background-position: -100% 100%;
            }
            70%{
                background-position: -200% 100%;
            }
            80%{
                background-position: -300% 100%;
            }
            90%{
                background-position: 0 0;
            }
            100%{
                background-position: -100% 0;
            }

        }
        </style>
    </head>
    <body>
        <div class="bird"></div>
    </body>
</html>

经测试,双排图片用steps(1)这样一帧去写,如果设计图是单排的话,如:

的话,可以用steps(10)去写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .hi{
            width: 50px;
            height: 72px;
            background-image: url("https://cdn.files.qdfuns.com/note/content/picture/201905/28/150117p6sbit8yihupt8ej.png");
            /*深度理解
            *整个动画1s完成。
            *这里1s要移动500的像素,这1s要有十步走完,每步是平均下来是0.1s,
            *每步比上一步多走了72px的位置,这个走是瞬间走到的。
            *end表示每一步在接近0.1s再去走
            */
            animation: play 1s steps(10) infinite;
        }
        /*定义动画*/
        @keyframes play {
            from { background-position:    0px 0px; }
            to { background-position: -500px 0px; }
        }
    </style>
</head>
<body>
<img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL2Nkbi5maWxlcy5xZGZ1bnMuY29tL25vdGUvY29udGVudC9waWN0dXJlLzIwMTkwNS8yOC8xNTAxMTdwNnNiaXQ4eWlodXB0OGVqLnBuZw==.jpg" alt="此图片是500*72,主要是为了显示作用">
<div class="hi"></div>

</body>
</html>

原文地址:https://www.cnblogs.com/lsc-boke/p/10996958.html

时间: 2024-08-24 05:05:12

深入css3帧动画实现ps时间轴动画效果steps()(前端网备份)的相关文章

万彩动画大师丨时间轴竖向滚动条

万彩动画大师的时间轴竖向滚动条可以向你展示现在进行到哪个元素动画和哪个镜头,以便让您更清晰明了地知道动画视频播放的进度. 当[预览]动画视频时,万彩动画大师的[时间轴区域]会有一个[竖向滚动条]表示进度,当预览暂停或者结束后,可以在时间轴区域里任意移动时间轴竖向滚动条.如下图竖向滚动条界面所示: 原文地址:https://www.cnblogs.com/focusky/p/10209690.html

layaAir引擎制作游戏的图集动画、时间轴动画、和骨骼动画总结二

一.角色序列帧.ani动画的制作 1.在项目管理器中创建动画文件 2.创建动画模板,编辑动效名称 3.编辑序列帧动画 .ani格式动画的代码控制 1.动画加载loadAnmition() 2.播放与停止.动效模板切换 3.动画帧位置控制 4.动画播放完成事件 uui截图: Laya.init(1334, 750); Laya.loader.load(["res/comp.atlas","res/role.atlas"],Laya.Handler.create(thi

时间轴

在前端网看到个时间轴的效果,故简单模范了个. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> body{margin: 50px;} .container{margin-left: 30%;l

Android 类似时间轴的实现

想要实现图片中的的时间轴的效果,设定了三种颜色,但是出来的只有一个黑色,还不是设定好的,而且长度很长的话不能滚动,下面上代码: 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android

基于jQuery的时间轴鼠标悬停动画插件

之前为大家分享了很多jquery插件,这次我们要来分享一款不太常见的jQuery插件,它是一个时间轴,时间轴上的每一个点在鼠标滑过时都可以显示该点的描述信息,并且鼠标滑过时都可以产生一定的动画特效,比如鼠标划过时圆圈的展开动画. 在线预览   源码下载 实现的代码. html代码: <div class="clearfix course_nr"> <ul class="course_nr2"> <li>1993 <div c

CSS3实现时间轴效果

最近打开电脑就能看到极客学院什么新用户vip免费一个月,就进去看看咯,这里就不说它的课程怎么滴了,里面实战路径图页面看到了这个效果: 有点像时间轴的赶脚,而且每一块鼠标悬浮上去也有下拉效果展开介绍截图信息,就感觉效果还不错.但感觉这种效果貌似对于动态添加不是很灵活,因为高度不像宽度可以灵活的自适应,故添加得自己一个一个设置.所以很多都是做成展示效果. 当然啦,自己也基于它的这个想法搞了一点简单点的类似效果,主要还是整个布局效果,具体每一块内容就不仿造了,而且我自己也加了一下开场动画,让它更好玩一

QT动画时间轴控制 QTimeLine

QTimeLine类提供用于控制动画的时间轴 比如控制进度条的增长,图片,窗口的旋转,平移等等 QTimeLine有一个frameChanged(int)信号 当调用QTimeLine::start() frameChanged(int val)里面的val值会从0到50开始递增 (前提是需要设置范围如timeLine->setFrameRange(0, 50); 也需要设置QTimeLine变化的时间timeLine = new QTimeLine(1000, this)) 可以在槽函数中接受

css3 2D转换(2D Transform) 动画(Animation)

transform 版本:CSS3 内核类型 写法 Webkit(Chrome/Safari) -webkit-transform Gecko(Firefox) -moz-transform Presto(Opera) -o-transform Trident(IE) -ms-transform W3C transform none:无转换 matrix(<number>,<number>,<number>,<number>,<number>,&

19 01 04 CSS3 圆角 grba(带通明的) tansition动画 transform变换 animation动画

CSS3圆角 设置某一个角的圆角,比如设置左上角的圆角:border-top-left-radius:30px 60px; 同时分别设置四个角: border-radius:30px 60px 120px 150px; 设置四个圆角相同:border-radius:50%; rgba(新的颜色值表示法) 2.rgba(0,0,0,0.1) 前三个数值表示颜色,第四个数值表示颜色的透明度 CSS3 transition动画 1.transition-property 设置过渡的属性,比如:widt