zoukankan      html  css  js  c++  java
  • 作业题之动画改良

    CSS3 有3种和动画相关的属性:transform, transition, animation。

    其中 transform 描述了元素静态样式。而transition 和 animation 却都能实现动画效果。

    所以它们常常配合使用,可以做到一些很炫的效果。

    不同点:

    1.  触发条件不同。transition通常和hover等事件配合使用,由事件触发。animation则和gif动态图差不多,立即播放。

    2. 循环。 animation可以设定循环次数。

    3. 精确性。 animation可以设定每一帧的样式和时间。tranistion 只能设定头尾。 animation中可以设置每一帧需要单独变化的样式属性,

    transition中所有样式属性都要一起变化。

    4. 与javascript的交互。animation与js的交互不是很紧密。tranistion和js的结合更强大。js设定要变化的样式,

    transition负责动画效果,天作之合,比之前只能用js时爽太多。

    结论:

    1. 如果要灵活定制多个帧以及循环,用animation.

    2. 如果要简单的from to 效果,用 transition.

    3. 如果要使用js灵活设定动画属性,用transition.

    以上是摘抄别人的博文的。

    transition和animation是不能一起共同一起使用的。

    这次作业有个要做动画的效果。

    达标效果:

    这个是用transition简单的过渡动画效果,由于好像不是很美观,所以改良了一下。

    改良效果:

    这个是使用animation的动画效果实现的,可以看出动画比较丰富一些,不会只有一种动画在动。

    改良代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>zuoye2</title>
        <style>
        div{
            margin: 50px auto 0;
            width: 600px;
            height: 194px;
            background: url(bg_icon.png) 158px 46px/144px 66px,
            url(21.png) 510px 194px/24px 24px,
            url(22.png) 539px 194px/23px 24px,
            url(23.png) 568px 194px/23px 24px,
            url(zuoye-2.png);
            background-repeat:no-repeat;
            animation: doMove01 1s forwards;
        }
        @keyframes doMove01{
            0%{background: url(bg_icon.png) 150px 32px/175px 96px,
                url(21.png) 510px 163px/24px 24px,
                url(22.png) 539px 163px/23px 24px,
                url(23.png) 568px 163px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;}
            100%{
                background: url(bg_icon.png) 158px 46px/144px 66px,
                url(21.png) 510px 194px/24px 24px,
                url(22.png) 539px 194px/23px 24px,
                url(23.png) 568px 194px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
        }
        div:hover{
            animation: doMove 1.3s forwards;
        }
        @keyframes doMove{
            0%{background: url(bg_icon.png) 156px 44px/147px 69px,
                url(21.png) 510px 194px/24px 24px,
                url(22.png) 539px 194px/23px 24px,
                url(23.png) 568px 194px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            5%{background: url(bg_icon.png) 155px 43px/150px 72px,
                url(21.png) 510px 170px/24px 24px,
                url(22.png) 539px 182px/23px 24px,
                url(23.png) 568px 194px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            10%{background: url(bg_icon.png) 154px 41px/153px 75px,
                url(21.png) 510px 158px/24px 24px,
                url(22.png) 539px 170px/23px 24px,
                url(23.png) 568px 182px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            20%{background: url(bg_icon.png) 153px 39px/159px 81px,
                url(21.png) 510px 137px/24px 24px,
                url(22.png) 539px 149px/23px 24px,
                url(23.png) 568px 161px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            25%{background: url(bg_icon.png) 152px 38px/162px 84px,
                url(21.png) 510px 149px/24px 24px,
                url(22.png) 539px 137px/23px 24px,
                url(23.png) 568px 149px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            30%{background: url(bg_icon.png) 151px 36px/165px 87px,
                url(21.png) 510px 161px/24px 24px,
                url(22.png) 539px 149px/23px 24px,
                url(23.png) 568px 137px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            35%{background: url(bg_icon.png) 150px 34px/168px 90px,
                url(21.png) 510px 163px/24px 24px,
                url(22.png) 539px 161px/23px 24px,
                url(23.png) 568px 149px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            40%{background: url(bg_icon.png) 150px 32px/171x 93px,
                url(21.png) 510px 163px/24px 24px,
                url(22.png) 539px 163px/23px 24px,
                url(23.png) 568px 161px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            45%{background: url(bg_icon.png) 150px 32px/175px 96px,
                url(21.png) 510px 163px/24px 24px,
                url(22.png) 539px 163px/23px 24px,
                url(23.png) 568px 163px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
            100%{background: url(bg_icon.png) 150px 32px/175px 96px,
                url(21.png) 510px 163px/24px 24px,
                url(22.png) 539px 163px/23px 24px,
                url(23.png) 568px 163px/23px 24px,
                url(zuoye-2.png);
                background-repeat:no-repeat;
            }
        }
    
    
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>

    有更好的意见和想法请评论一下。前提是纯css实现的。(O ^ ~ ^ O)

  • 相关阅读:
    alter table add column default
    JS小知识点
    java list按照元素对象的指定多个字段属性进行排序
    Web.xml配置详解之context-param
    spring在web.xml中的配置
    Activiti工作流(4):编写一个HelloWorld
    Activiti工作流(3):activiti核心API
    Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
    Activiti工作流框架学习(一)——环境的搭建和数据表的了解
    Redis系列之(二):Redis主从同步,读写分离
  • 原文地址:https://www.cnblogs.com/zhangzhicheng/p/5767963.html
Copyright © 2011-2022 走看看