搜索
首页web前端css教程css3动画之transition和animation属性介绍

css3动画之transition和animation属性介绍

Oct 11, 2018 pm 04:07 PM
animationcss3css3动画transition

本文给大家介绍实现css3动画的transition和animation属性,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

tradition一共以下有4个属性:

  • transition-property 过渡属性

  • transition-duration 完成动画所需时间,以秒或者毫秒计算

  • transition-timing-function 规定动画变化速度曲线

  • transition-delay 是否延时

transition-property 过渡属性

none:没有属性会获得过渡效果

all:所有属性会获得过渡效果

porperty:width,height...

img{    
    height:15px;    
    width:15px;
}
img:hover{    
    height: 450px;    
    width: 450px;
}

transition的作用在于指定状态变化所需要的时间。

img{
    transition: 1s;
}

transition-duration 完成状态过渡的秒或者毫秒

还可以指定transition的变化属性,例如是width变化还是height

img{
    transition: 1s height;
}

还可以指定多个属性

img{
    transition: 1s height, 1s width
}

transition-delay 状态变化速度。

指定delay参数,使得height先发生变化,然后在让width发生变化:

img{
    transition: 1s height, 1s 1s width
}

delay 真正的意义在于指定了动画发生的顺序,使得多个不同的transition可以在不同的时刻发生形成一种动画效果

transition-timing-function 状态变化速度

默认的是逐渐放慢 ease

可能取值有

  • linear:匀速

  • easy-in:加速

  • ease-out:减速

  • cubic-bezier函数,自定义速度模式

(cubic:立方体的,bezier:贝塞尔曲线 )

cubic-bezier(bc6fe54a88198feaad90e17e912675f1, 22e181b6d31cf86e9ad22800df920dd0, be787f7ac9828fa514a83e4c791ae092, f4bf86c47d72eed593f57bb329a5f9f8)取值范围0-1

img{    
    transition-property: height;         
    transition-duration: 1s;    
    transition-delay: 1s;    
    transition-timing-function: ease;
}

注意:transition需要明确知道开始状态和结束状态的具体数值才能计算出中间状态。但是transition没法计算出0->auto的状态,那么就不会产生动画效果。类似情况还有display:none->block和background:url(foo.jpg)->url(bar.jpg)的情况。

它有的缺点:

  1. 需要事件触发,没法在网页加载时候直接发生

  2. 是一次性的,不能重复发生,除非你重复触发它

  3. 只能定义开始状态和结束状态,不能定义中间状态

  4. 一个transition规则,只能定义一个属性的变化

animation

CSS Animation一共有以下属性:

  • animation-name 需要绑定到选择器keyframe的名称

  • animation-duration  完成动画所需时间,以秒或者毫秒计算

  • animation-timing-function 规定动画的速度曲线

  • animaton-delay  动画开始之前延时的时间

  • animation-iteration-count  动画应该播放的次数

  • animation-direction 是否应该轮流反向播放动画

  • animation-fill-mode 属性规定动画播放之后其动态效果是否可见

  • animatoin-play-state 规定动画正在运行还是暂停

iteration-重复

animation-name

animation-duration

首先 设置动画的名称和持续的时长

p:hover{
animation: 1s rainbow;
}

上面代码表示,当鼠标悬停在p元素上时,会产生名为rainbow的动画效果,持续时间为1秒。为此,我们还需要用keyframes关键字,定义rainbow效果。

@keyframs rainbow{
0% { background: #c00; }
50% { background: orange; }
100% { background: yellowgreen; }
}

keyframs的写法相当自由

可以用from表示0%,to 表示100%

@keyframs rainbow{
from { background: #c00; }
50% { background: orange; }
to { background: yellowgreen; }
}

如果忽略某个状态,浏览器会自动推算

@keyframs rainbow{
   50% { background: orange; }
     to { background: yellowgreen; }
}

@keyframs rainbow{
to { background: yellowgreen; }
}

@keyframs rainbow{
from, to { background: yellowgreen; }
}

浏览器从一个状态到另外一个状态是平滑过渡到,steps函数实现分步过渡

p:hover {
animation: 1s rainbow infinite steps(10);
}

默认情况下,动画只播放一次。加入infinite关键字,可以让动画无限次播放。

p:hover{
animation: 1s rainbow infinite;
}

除了infinite,还可以设置为具体的次数: 3、5

p:hover{
animation: 1s rainbow 5;
}

animation-fill-mode

动画结束以后会立即冲结束状态回到起始状态,如果想让动画保持在结束状态就要加上animation-fill-mode属性中的forwards

p:hover{
animation: 1s rainbow infinite forwards;
}

animation-fill-mode 有4种取值

none  不改变默认行为

forawads  动画完成后,保持最后一个属性(在最后一个关键帧中定义)

backwards  在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。

both  向前向后都进行填充

animation-direction

规定了轮流反向播放动画

alternate:动画会在奇数次(1,3,5...)正常播放,偶数次(2,4,6...)反向播放

最常用alternate和revers,浏览器对其他值的支持不佳

<iframe 
width="100%" height="300" src="//jsfiddle.net/xiaoying/2414dr39/embedded/">
</iframe>

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问 CSS3视频教程

相关推荐:

php公益培训视频教程

CSS在线手册

CSS3在线手册

div/css图文教程

css3特效代码大全

以上是css3动画之transition和animation属性介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
有点提醒您伪元素是孩子,有点。有点提醒您伪元素是孩子,有点。Apr 19, 2025 am 11:39 AM

这里有一个带子元素的容器:

菜单具有'动态命中区域”菜单具有'动态命中区域”Apr 19, 2025 am 11:37 AM

飞翔的菜单!您需要在第二个菜单中实现悬停事件以显示更多菜单项的菜单,即您在棘手的领域中。一方面,他们应该

通过Webvtt改善视频可访问性通过Webvtt改善视频可访问性Apr 19, 2025 am 11:27 AM

“网络的力量在于其普遍性。每个人的访问无论残疾是一个重要方面。” - 蒂姆·伯纳斯 - 李

每周平台新闻:CSS :: Marker伪元素,预先渲染的Web组件,向您的网站添加Webmention每周平台新闻:CSS :: Marker伪元素,预先渲染的Web组件,向您的网站添加WebmentionApr 19, 2025 am 11:25 AM

在本周的综述中:datepickers正在让键盘用户头痛,一个新的Web组件编译器,有助于与Fouc进行战斗,我们终于获得了造型列表项目标记,以及在您的网站上获得网络攻击的四个步骤。

使宽度和灵活的物品一起玩得很好使宽度和灵活的物品一起玩得很好Apr 19, 2025 am 11:23 AM

简短的答案:您可能要寻找的是弹性折射和弹性基础。

位置粘性和桌子标头位置粘性和桌子标头Apr 19, 2025 am 11:21 AM

您可以位置:粘性;一个

每周平台新闻:HTML在搜索控制台,全局脚本范围中的HTML检查,Babel Envs添加默认查询查询每周平台新闻:HTML在搜索控制台,全局脚本范围中的HTML检查,Babel Envs添加默认查询查询Apr 19, 2025 am 11:18 AM

在本周的Web平台新闻世界中,Google搜索控制台可以更轻松地查看爬行的标记,我们了解到自定义属性

Indieweb和网络企业Indieweb和网络企业Apr 19, 2025 am 11:16 AM

Indieweb是一回事!他们将举行会议和一切。纽约客甚至在写这件事:

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境