html 动画过度转换的用法,CSS3过渡效果(css3 transition)

CSS3的出现最引人注意的地方莫过于css动画(CSS Animation)了,而css3过渡(CSS Transition)让动画变的生动更逼真。今天就带大家一起来认识一下CSS Transition。

CSS3 Transitions

有了它,我们从一种效果转换到另一种效果而无需javascript或flash,我们只需一段CSS代码而已。

浏览器支持

属性

浏览器

transition

40223091_1.gif

40223091_2.gif

40223091_3.gif

40223091_4.gif

40223091_5.gif

Internet Explorer不支持过渡属性。

Firefox4需要前缀-moz-。

Chrome和Safari需要前缀-webkit-。

Opera需要前缀-o-。

它是如何工作?

CSS3的过渡效果,让一个元素从一种效果转换到另一种效果。

要做到这一点,你必须指定两件事:

指定要添加效果的CSS属性

指定效果的持续时间。

举例说明:

div

{

transition: width 2s;

-moz-transition: width 2s; /* Firefox 4 */

-webkit-transition: width 2s; /* Safari and Chrome */

-o-transition: width 2s; /* Opera */

}

注意:如果未指定动画延迟时间,过渡将没有任何效果,因为默认值是0。

鼠标放上去的时候,变换开始:

div:hover{

width:300px;

}

在哪里定义动画效果?

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

动态伪类

起作用的元素

描述

:link

只有链接

未访问的链接

:visited

只有链接

访问过的链接

:hover

所有元素

鼠标经过元素

:active

所有元素

鼠标点击元素

:focus

所有可被选中的元素

元素被选中

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

transition的基本语法:

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

transition的语法:

transition : [ || || || [, [ || || || ]]*

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

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

transition-duration : [, ]*

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

transition-delay : [, ]*

那些属性可以变换?

transition-property:要变化的属性,比如元素变宽则是width,文字颜色要变色这是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

数字

几乎所有的有色彩、大小或位置等组件的CSS属性,包括许多新添加的CSS3属性, 都可以应用变换。一个值得注意的例外是box-shadow,不过部分浏览器还是对box-shadow添加了支持。

该取值还有个强大的“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”;

典型的应用举例:

放大缩小:

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

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

旋转:

#rotate { -webkit-transition: all 1s ease-in-out;}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值