zoukankan      html  css  js  c++  java
  • 新方法写动画

    现在必须用appframework.js 做各种效果,

    语法是和jquery差不多的,没看到animate、slideUp这些,

    貌似是有用自定义标签的属性来做的,还没有试过。

    不过因为现在不用考虑浏览器兼容性,只要伺候chrome一位,这些东西用css3就可以轻松搞定。

    需要记住几点:

    transition给初始样式,写在dom的原始结构上

    transformanimation给激活样式,比如hover,active,focus以及js的addClass

    animation需要keyframeskeyframes配合transform得到复合效果

    transform里用translate代替直接改动TRBL,scale做缩放,正负区分方向

    transition: property duration timing-function delay

    Property列表:

    1、color: 通过红、绿、蓝和透明度组件变换(每个数值单独处理),如:background-color,border-color,color,outline-color等CSS属性;
    
    2、length:真实的数字,如:word-spacing,width,vertical- align,top,right,bottom,left,padding,outline-width,margin,min-width,min- height,max-width,max-height,line-height,height,border-width,border- spacing,background-position等属性;
    
    3、percentage:真实的数字,如:word-spacing,width,vertical- align,top,right,bottom,left,min-width,min- height,max-width,max-height,line-height,height,background-position等属性;
    
    4、integer离散步骤(整个数字),在真实的数字空间,以及使用floor()转换为整数时发生,如:outline-offset,z-index等属性;
    
    5、number真实的(浮点型)数值,如:zoom,opacity,font-weight等属性;
    
    6、transform list:详情请参阅:《CSS3 Transform》。
    
    7、rectangle:通过x、 y、 width和height(转为数值)变换,如:crop;
    
    8、visibility:离散步骤,在0到1数字范围之内,0表示“隐藏”,1表示完全“显示”,如:visibility;
    
    9、shadow:作用于color、x、y、和blur(模糊)属性,如:text-shadow;
    
    10、gradient:通过每次停止时的位置和颜色进行变化。它们必须有相同的类型(放射状的或是线性的)和相同的停止数值以便执行动画,如:background-image;
    
    11、paint server (SVG):只支持下面的情况:从gradient到gradient以及color到color,然后工作与上面类似;
    
    12、space-separated list of above:如果列表有相同的项目数值,则列表每一项按照上面的规则进行变化,否则无变化;
    
    13、a shorthand property:如果缩写的所有部分都可以实现动画,则会像所有单个属性变化一样变化。

    例如:

    .translate{
        -webkit-transition:1s ease all;
        position:absolute;
        left:-274px;
        z-index: 999;
        top:10px;
        background:#4d6ea6;
    }

    对于所有属性all,都加上了transition

    $("#btn").on("click",function(event) {
        $("#menu-container").css("left","0");
        $("#maincontan").css("left","274px");
    });

    appframework写的按钮点击事件就这样。

    html中比如"#menu-container"的class为.translate,点击按钮后他的left起了变化,就会做left移动的动画效果。

    animation逐帧动画:

    分为两部分,一部分是执行关键帧keyframes

    另一部分是定义关键帧:

    .animation{
            82px;
            height: 82px;
            display: block;
            position: relative;
            -webkit-animation: speaker 2s infinite;
        }
                @-webkit-keyframes speaker {
                    0% {
                        background: url(speaker_before.png);
                    }
                    50%{
                        background: url(speaker.png);
                    }
                    100% {
                        background: url(speaker_after.png);
                    }
                }

    虽然我这里采用了缩进,可以看出其实@后的css语句并不是在第一个大括号内部的,而是之同级。

    用百分比来添加关键帧就可以做出不局限于from{}to{}的两帧动画。

    transform: rotate | scale | skew | translate |matrix;

     

    2D Transform 方法

    函数描述
    matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
    translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素。
    translateX(n) 定义 2D 转换,沿着 X 轴移动元素。
    translateY(n) 定义 2D 转换,沿着 Y 轴移动元素。
    scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度。
    scaleX(n) 定义 2D 缩放转换,改变元素的宽度。
    scaleY(n) 定义 2D 缩放转换,改变元素的高度。
    rotate(angle) 定义 2D 旋转,在参数中规定角度。
    skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴。
    skewX(angle) 定义 2D 倾斜转换,沿着 X 轴。
    skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴。

    translate3D对硬件要求较高,适合smartphone和ipad这类设备

    转换属性

    下面的表格列出了所有的转换属性:

    属性描述CSS
    transform 向元素应用 2D 或 3D 转换。 3
    transform-origin 允许你改变被转换元素的位置。 3
    transform-style 规定被嵌套元素如何在 3D 空间中显示。 3
    perspective 规定 3D 元素的透视效果。 3
    perspective-origin 规定 3D 元素的底部位置。 3
    backface-visibility 定义元素在不面对屏幕时是否可见。 3

    2D Transform 方法

    函数描述
    matrix3d(n,n,n,n,n,n,
    n,n,n,n,n,n,n,n,n,n)
    定义 3D 转换,使用 16 个值的 4x4 矩阵。
    translate3d(x,y,z) 定义 3D 转化。
    translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
    translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
    translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
    scale3d(x,y,z) 定义 3D 缩放转换。
    scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
    scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
    scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
    rotate3d(x,y,z,angle) 定义 3D 旋转。
    rotateX(angle) 定义沿 X 轴的 3D 旋转。
    rotateY(angle) 定义沿 Y 轴的 3D 旋转。
    rotateZ(angle) 定义沿 Z 轴的 3D 旋转。
    perspective(n) 定义 3D 转换元素的透视视图。
  • 相关阅读:
    Appium+python自动化2-环境搭建(下)【转载】
    Appium+python自动化1-环境搭建(上)【转载】
    python+requests接口自动化完整项目设计源码【转载】
    python接口自动化10-token登录【转载】
    linux_samba服务搭建
    linux_nginx反向代理
    linux_Nginx优化
    linux_mysql安装
    linux_http协议
    linux_nginx_rewrite
  • 原文地址:https://www.cnblogs.com/haimingpro/p/3918312.html
Copyright © 2011-2022 走看看