• CSS3动画


    移动端的开发也有这种hack,来解决可能的卡顿问题:

    css-webkit-transform: translate3d(0, 0, 0);


    css3动画大致分三类:


    1.变形


    说明

    transform属性能对元素对象进行变形操作,主要包括以下几种:旋转rotate、缩放scale、移动translate、倾斜skew以及矩阵变形matrix。

    取值

    none:表示不进行变换;

    <transform-function>:表示一个或多个变换函数,以空格分开,因此可以同时对一个元素进行transform的多种属性操作。

    • 1.rotate(<angle>):旋转元素
    • 2.scale(<number>[, <number>]):缩放元素
    • 3.translate(<translation-value>[, <translation-value>]):移动元素
    • 4.skew(<angle> [,<angle>]):倾斜元素
    • 5.matrix(<number>,<number>,<number>,<number>,<number>,<number>):矩阵变形
    • 6.perspective(length):透视

    示例:transform:rotate(90deg) scale(1.5,0.8) translate(100px,50px) skew(45deg,45deg);


    实例代码:

    css
    1. .demo_rotate{
    2.     -webkit-transition:1s ease all;
    3.     -moz-transition:1s ease all;
    4.     padding:10px;
    5.     margin:90px auto;
    6. }
    7. .demo_rotate:hover{
    8.     -webkit-transform:rotate(360deg) scale(1.2,1.2);
    9.     -moz-transform:rotate(360deg) scale(1.2,1.2);
    10.     background:#ff9900;
    11. }
     HTML
    1. <div class="demo_box demo_rotate">鼠标经过变大1.2倍、旋转360度并改变背景色。</div>          

    2.过渡


    transform呈现的是一种变形结果,而Transation呈现的是一种过渡,通俗点说就是一种动画转换过程,如渐显、渐弱、动画快慢等。transition和transform是两种不同的动画模型。http://www.w3.org/TR/css3-transitions/

    transition可以和Transform同时使用。

    transition是一个复合属性,可以同时定义transition-property、transition-duration、transition-timing-function、transition-delay子属性值。


    实例代码

    CSS
    1. .transition_property_1{
    2.     -webkit-transition:0.5s ease;
    3.     -moz-transition:0.5s ease;
    4.     -webkit-transition-property:all;
    5.     -moz-transition-property:all;
    6.     position:absolute;
    7.     left:10px;
    8.     top:50px;
    9. }
    10. .transition_property_2{
    11.     -webkit-transition:0.5s ease;
    12.     -moz-transition:0.5s ease;
    13.     -webkit-transition-property:none;
    14.     -moz-transition-property:none;
    15.     position:absolute;
    16.     left:250px;
    17.     top:50px;
    18. }
    19. .transition_property_3{
    20.     -webkit-transition:0.5s ease;
    21.     -moz-transition:0.5s ease;
    22.     -webkit-transition-property:width;
    23.     -moz-transition-property:width;
    24.     position:absolute;
    25.     left:480px;
    26.     top:50px;
    27. }

    28. .transition_property_1:hover,
    29. .transition_property_2:hover,
    30. .transition_property_3:hover{
    31.     width:500px;
    32.     height:300px;
    33. }

    1. <div class="demo_box transition_property_1">变换所有的属性</div>
    2. <div class="demo_box transition_property_2">不变换任何属性</div>
    3. <div class="demo_box transition_property_3">只变换宽度属性</div>
    效果预览http://runjs.cn/detail/s3k5rfg0


    3.动画


    说明

    检索或设置对象所应用的动画名称,必须与规则@keyframes配合使用,因为动画名称由@keyframes定义 如果提供多个属性值,以逗号进行分隔。

    如何开始进行动画

    @keyframes相当于一个命名空间,后面跟一个名词,如果在class中的animation-name定义了与之对应的name,那么就可以执行动画了。定义动画时,简单的动画可以直接使用关键字from和to,即从一种状态过渡到另一种状态:如:

    @-webkit-keyframes demo{
        from{left:0;}
        to{left:400px;}
    }

    复杂动画:

    @-webkit-keyframes demo{
        0%{left:0;}
        50%{left:200px;}
        100%{left:400px;}
    }

    这里面的百分百有点像flash里帧的概念。表示设置某个时间段内任意时间点的样式。    

    实例代码

    CSS
    1. .animation_name{
    2.     left:0;
    3.     top:100px;
    4.     position:absolute;
    5.     -webkit-animation:0.5s 0.5s ease infinite alternate;
    6.     -webkit-animation-name:demo;
    7.     -moz-animation:0.5s 0.5s ease infinite alternate;
    8.     -moz-animation-name:demo;
    9. }
    10. @-webkit-keyframes demo{
    11.     0%{left:0;}
    12.     100%{left:400px;}
    13. }
    HTML
    1. <div class="demo_box animation_name">看我没事来回跑</div>                    

    预览下效果:http://runjs.cn/code/uajpxech


    说明

    transform的参照点默认为元素的中心点,如果要改变这个参照点,可以是用transform-origin属性进行自定义。

    受影响变形函数:rotate()


    1. .origin_1{
    2.     -webkit-transform-origin:center center;
    3.     -moz-transform-origin:center center;
    4.     -webkit-transition:0.5s ease all;
    5.     -moz-transition:0.5s ease all;
    6.     position:absolute;
    7.     left:10px;
    8.     top:50px;
    9. }
    10. .origin_2{
    11.     -webkit-transform-origin:left top;
    12.     -moz-transform-origin:left top;
    13.     -webkit-transition:0.5s ease all;
    14.     -moz-transition:0.5s ease all;
    15.     position:absolute;
    16.     left:250px;
    17.     top:50px;
    18. }
    19. .origin_3{
    20.     -webkit-transform-origin:100% 100%;
    21.     -moz-transform-origin:100% 100%;
    22.     -webkit-transition:0.5s ease all;
    23.     -moz-transition:0.5s ease all;
    24.     position:absolute;
    25.     left:480px;
    26.     top:50px;
    27. }
    28. .origin_4{
    29.     -webkit-transform-origin:20px 60px;
    30.     -moz-transform-origin:20px 60px;
    31.     -webkit-transition:0.5s ease all;
    32.     -moz-transition:0.5s ease all;
    33.     position:absolute;
    34.     left:250px;
    35.     top:160px;
    36. }
    37. .origin_1:hover,
    38. .origin_2:hover,
    39. .origin_3:hover,
    40. .origin_4:hover{
    41.     -webkit-transform:rotate(45deg);
    42.     -moz-transform:rotate(45deg);
    43. }                        
    HTML
    1. <div class="demo_box origin_1">在中心点旋转45度</div>
    2. <div class="demo_box origin_2">在左上角旋转45度</div>
    3. <div class="demo_box origin_3">用百分百值来来设置旋转点旋转45度</div>
    4. <div class="demo_box origin_4">用长度值来设置旋转点旋转45度</div>                        






  • 相关阅读:
    一个C++的unit库
    一篇关于如何组织unit tests的文章,很有趣
    web开发者的checklist
    用了story point就一定agile了吗?
    C#中如何用Windows Management Instrumentation (WMI)得到系统信息
    Windows下C++的同步机制的演变
    Sysinternals自动更新的工具SyncTools
    什么情况下要替换C++自带的new和delete
    VS2012插件:可视化TFS代码版本历史
    Quattro发布自助手机广告产品
  • 原文地址:https://www.cnblogs.com/webfby/p/6124504.html
Copyright © 2020-2023  润新知