zoukankan      html  css  js  c++  java
  • [转]WebKit CSS3 动画基础

    前几天在Qzone上看到css3动画,非常神奇,所以也学习了一下。首先看看效果http://www.css88.com/demo/css3_Animation/

    很悲剧的是css3动画现在只有WebKit内核的浏览器(Safari和Chrome)支持,虽然应用还不是时候,但是效果却不可低估。

    在哪里定义动画效果?

    css3动画一般通过鼠标事件或者说状态定义动画,通常我们可以用CSS中伪类js中的鼠标事件来定义。

    动态伪类 起作用的元素 描述
    :link 只有链接 未访问的链接
    :visited 只有链接 访问过的链接
    :hover 所有元素 鼠标经过元素
    :active 所有元素 鼠标点击元素
    :focus 所有可被选中的元素 元素被选中

    js的事件也可以,比如click,focus,mousemove,mouseover,mouseout等等

    transition的基本语法:

    css3动画通过transition属性和其他css属性(颜色,宽高,变形,位置等等)配合来实现。

    transition的语法:

    transition : [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'> [, [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'>]]*

    当然这是简写,我们也可以完整的写:

    transition-property : none | all | [ <IDENT> ] [ ',' <IDENT> ]*;

    transition-duration : <time> [, <time>]*

    transition-timing-function : ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>)]*

    transition-delay : <time> [, <time>]*

     

    要变化的属性

    transition-property:要变化的属性,比如元素变宽则是width,文字颜色要变色这是color;W3C给出了一个可变换属性的列表

    CSS属性 改变的对象
    background-color 色彩
    background-image 只是渐变
    background-position 百分比,长度
    border-bottom-color 色彩
    border-bottom-width 长度
    border-color 色彩
    border-left-color 色彩
    border-left-width 长度
    border-right-color 色彩
    border-right-width 长度
    border-spacing 长度
    border-top-color 色彩
    border-top-width 长度
    border-width 长度
    bottom 百分比,长度
    color 色彩
    crop 百分比
    font-size 百分比,长度
    font-weight 数字
    grid-* 数量
    height 百分比,长度
    left 百分比,长度
    letter-spacing 长度
    line-height 百分比,长度,数字
    margin-bottom 长度
    margin-left 长度
    margin-right 长度
    margin-top 长度
    max-height 百分比,长度
    max-width 百分比,长度
    min-height 百分比,长度
    min-width 百分比,长度
    opacity 数字
    outline-color 色彩
    outline-offset 整数
    outline-width 长度
    padding-bottom 长度
    padding-left 长度
    padding-right 长度
    padding-top 长度
    right 百分比,长度
    text-indent 百分比,长度
    text-shadow 阴影
    top 百分比,长度
    vertical-align 百分比,长度,关键词
    visibility 可见性
    width 百分比,长度
    word-spacing 百分比,长度
    z-index 正整数
    zoom 数字

    该取值还有个强大的“all”取值,表示上表所有属性;

    除了以上属性外,当然还有css3中大放异彩的css3变形,比如放大缩小,旋转斜切,渐变等等。

    动画时间

    transition-duration :动画执行的时间,以秒为单位,比如0.1秒可以写成”0.1s”或者”.1s”,注意后面有个“s”单位。

    动画执行的计算方式

    transition-timing-function :动画执行的计算方式,这里时间函数是令人崩溃的贝塞尔曲线幸好css3提过了几个取值:

    ease:逐渐慢下来,函数等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0).

    linear:线性过度,函数等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0).

    ease-in:由慢到快,函数等同于贝塞尔曲线(0.42, 0, 1.0, 1.0).

    ease-out:由快到慢, 函数等同于贝塞尔曲线(0, 0, 0.58, 1.0).

    ease-in-out:由慢到快在到慢, 函数等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)

    cubic-bezier:特定的cubic-bezier曲线。 (x1, y1, x2, y2)四个值特定于曲线上点P1和点P2。所有值需在[0, 1]区域内,否则无效。

    动画延迟

    transition-delay:在动作和变换开始之间等待多久,通常用秒来表示(比如, .1s)。如果你不想延迟,该值可省略。

    重叠动画

    经常会碰到同一元素会有多个动画同时执行的时侯,比如文字颜色和背景同时变化:

    -webkit-transition: color .25s linear , background-color 1s linear;

    和transform(变形)结合的一些动画

    这时候transition-property建议取值为“all”;关于css3 transform(变形)属性请查看

    http://www.css88.com/archives/2168

    比如放大缩小:

    #blah { -webkit-transition: all .3s ease-in-out; }

    #blah:hover { -webkit-transform: scale(1.5); }

    旋转:

    .arrow { -webkit-transition: all 1s ease-in-out;}

    .arrow:hover  {-webkit-transform: rotate(720deg);}

    做了几个案例,demo:http://www.css88.com/demo/css3_Animation/

    还可以看老外的demo:http://webdeveloperjuice.com/demos/css/css3effects.html

    =================

    参考阅读:

    http://www.qianduan.net/css-transitions-101.html

    http://www.zhangxinxu.com/wordpress/?p=498

    http://fis.io/css-3-hover-animations.html

    其他文章:

    https://developer.mozilla.org/zh-CN/docs/CSS/Tutorials/Using_CSS_transitions

    http://www.qianduan.net/css-transitions-101.html

    http://www.w3school.com.cn/css3/css3_animation.asp

    http://www.w3school.com.cn/cssref/pr_transition.asp

  • 相关阅读:
    第 6 章 Android SDK 版本与兼容
    第 5 章 第二个 activity
    第 4 章 Android 应用的调试
    第 3 章 Activity 的生命周期
    第 2 章 Android 与 MVC 设计模式
    第 1 章 Android 应用初体验
    ACM基础之线性结构:一刷 参考答案
    小马慢慢跑
    Ubuntu 利用 xinetd 限制 SSH 连接数
    C# 定制 Attribute 简单使用
  • 原文地址:https://www.cnblogs.com/simonbaker/p/3666022.html
Copyright © 2011-2022 走看看