闲谈CSS3动画

时间:2010-05-07 12:34:00 


随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。这次有幸修改淘宝网全站页头,小小地应用了下(详见http://www.taobao.com/下拉箭头处的hover效果)。与其说是渐进增强,不如说是满足了技术人小小的虚荣心。

以下是自己的一点理解,希望能对大家有所帮助。

淘宝案例解析

需求:鼠标移动到菜单上时旋转箭头,且给支持CSS3的浏览器加上旋转动画。

源码请查看demo源文件。

demo (http://fiddle.jshell.net/pjRVT/show/light/)

关于CSS3动画

从(http://www.w3.org/Style/CSS/current-work)可以看出,CSS动画涉及的知识点包括 CSS 2D Transformations, CSS 3D Transformations, CSS Transitions, CSS Animations。

Transformation 补充定义了width, height, left, top等之外的一些可用于实现动画的属性,如rotate, scale, skew。
Transition 和 Animation 用于定义动画的过程。其中Transition 可以实现简单的动画;Animation则可以通过设定多个关键帧实现相对复杂的动画。

Can I Use? 兼容性

(数据来自http://caniuse.com/)

 IEFirefoxSafariChromeOpera
CSS 2D Transformno3.53.22.010.5
CSS 3D Transformnono4.* (Mac)nono
CSS Transitionno3.73.22.010.5
CSS Animationnono4.02.0no


可以看到,CSS Animation目前只有Webkit内核浏览器支持,目前只能自己玩玩;而Transition用来做渐进增强则较为合适。

一个简单的例子

需求:让一个div元素在鼠标移上去时变大1倍,旋转180度,且背景由红变蓝。

html code::

<div></div>

css code::

div {    position: absolute;    left: 100px;    top: 100px;    width: 100px;    height: 100px;    background: red;    /* 定义动画的过程 */    -webkit-transition: -webkit-transform .5s ease-in, background .5s ease-in;    -moz-transition:    -moz-transform .5s ease-in, background .5s ease-in;    -o-transition:      -o-transform .5s ease-in, background .5s ease-in;    transition:         transform .5s ease-in, background .5s ease-in;}div:hover {    /*  定义动画的状态 */    -webkit-transform: rotate(180deg) scale(2);    -moz-transform: rotate(180deg) scale(2);    -o-transform: rotate(180deg) scale(2);    -transform: rotate(180deg) scale(2);    background: blue;}

demo (http://fiddle.jshell.net/NVErB/show/light/) (no IE)

标签:CSS3,动画,菜单
0
投稿

猜你喜欢

  • ASP万用分页程序

    2007-09-21 12:45:00
  • 解决Python运算符重载的问题

    2022-07-04 23:09:33
  • ASP.NET中的几种弹出框提示基本实现方法

    2023-07-13 00:23:50
  • mysql提示[Warning] Invalid (old?) table or database name问题的解决方法

    2024-01-14 18:18:54
  • Python numpy.interp的实例详解

    2023-01-21 07:07:06
  • PHP实现数组根据某个字段进行水平合并,横向合并案例分析

    2023-10-04 04:55:53
  • python爬虫urllib中的异常模块处理

    2022-12-06 10:42:33
  • Go中变量命名规则与实例

    2024-05-09 09:55:45
  • 对numpy中向量式三目运算符详解

    2023-06-28 02:14:55
  • python相对包导入报“Attempted relative import in non-package”错误问题解决

    2022-02-28 12:57:05
  • Python将文字转成语音并读出来的实例详解

    2021-11-08 21:23:34
  • python选择排序算法的实现代码

    2021-06-19 07:51:10
  • Oracle Index 的三个问题

    2024-01-14 20:20:40
  • python 实现将小图片放到另一个较大的白色或黑色背景图片中

    2022-03-26 00:21:36
  • Python替换NumPy数组中大于某个值的所有元素实例

    2021-11-11 07:36:20
  • Java操作Mysql的方法

    2024-01-21 12:28:47
  • Python pandas库中的isnull()详解

    2022-06-06 20:58:01
  • 解析Javascript中中括号“[]”的多义性

    2023-09-03 09:59:35
  • PyCharm代码回滚,恢复历史版本的解决方法

    2021-01-08 21:19:55
  • 使用python实现拉钩网上的FizzBuzzWhizz问题示例

    2021-06-18 08:41:38
  • asp之家 网络编程 m.aspxhome.com