美文网首页
2018-06-13

2018-06-13

作者: 老头子_d0ec | 来源:发表于2018-06-13 14:15 被阅读0次

Css动画:

css3动画主要包括Transform、Transition、Animation

区别

transition:允许css的属性值在一定的时间区间内平滑地过渡。需要触发一个事件(hover事件或者click事件)才会随时间改变其css属性。
animation:不需要触发任何时间的情况下也可以显示地随时间变化来改变元素css的属性值,从而达到动画效果

animation

属性

1、animation-name:用来定义一个动画的名称,这边的name必须和@keyframes的name一致
2、animation-duration:指定元素播放动画所持续的时间长,单位为:s,默认值为:0
3、animation-timing-function:动画的播放方式
ease:(逐渐变慢)默认值,ease函数等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
linear:(匀速),linear 函数等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
ease-in:(加速),ease-in 函数等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
ease-out:(减速),ease-out 函数等同于贝塞尔曲线(0, 0, 0.58, 1.0)

4、animation-delay:指定元素动画开始的时间,也就是说当改变元素属性值后多长时间开始执行animation效果。单位为:s,默认为:0
5、animation-iteration-count:指定元素播放动画的循环次数,默认为:1,infinite:无限次数循环
6、animation-direction:指定元素动画播放的方向。默认值为:normal,动画的每次循环都是向前播放;另一个值为:alternate,动画播放在第偶数次向前播放,第奇数次向反方向播放。
7、animation-play-state:控制元素动画的播放状态。两个值:running和paused,其中running为默认值。

SouthEast (2).jpg

keyframes

关键帧,将指定时间段内的动画划分的更为精细一些

@keyframes animationname { keyframes-selector { css-styles; } }

.animationname:声明动画的名称。

keyframes-selector:用来划分动画的时长,可以使用百分比形式,也可以使用 “from” 和 “to”的形式。”from” 和 “to”的形式等价于 0% 和 100%。
!DOCTYPE html>
<html>
<head>
<style>
div
{
width:100px;
height:100px;
background:red;
position:relative;
animation:mymove 5s infinite;
-moz-animation:mymove 5s infinite; /* Firefox /
-webkit-animation:mymove 5s infinite; /
Safari and Chrome /
-o-animation:mymove 5s infinite; /
Opera */
}

@keyframes mymove
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}

@-moz-keyframes mymove /* Firefox */
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}

@-webkit-keyframes mymove /* Safari and Chrome */
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}

@-o-keyframes mymove /* Opera */
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}
</style>
</head>
<body>

<div></div>

</body>
</html>1

由于keyframes较难理解,在此用了w3school中的一个案例进行分析@keyframes 规则,具体效果可以点击链接进行查看。
keyframes跟flash类似,每一次的百分比就如同flash中的每一个帧,但是flash是需要每一帧每一帧进行动画效果比拟,而keyframes随时间变化来改变元素css的属性值,百分比是指在动画时间内的百分之多少进行变化。
在此案例中:animation:mymove 5s infinite;设置了动画名称为mymove,所持续时间为5s,无限循环。
则keyframes中的百分比(0%,25%,50%,75%,100%)就对应着(0s,1.25s,2.5s,3.75s,5s)
•当执行到0s时,top:0px; left:0px; background:red;
•当执行到1.25s时,top:0px; left:100px; background:blue;
•当执行到2.5s时,top:100px; left:100px; background:yellow;
•当执行到3.75s时,top:100px; left:0px; background:green;
•当执行到5s时,top:0px; left:0px; background:red;

在整个动画过程中,动画后面的会覆盖前面的属性值。动画结束后样式会回到默认效果。在每一个百分比的css样式会有一个animation渐变过程,让元素达到一种在不断变化的效果。

transition

1、语法

transition是一个复合属性,可设置四个过渡属性,简写方式如下:

transition{ transition-property transition-duration transition-timing-function transition-delay}

transition-property:是用来指定当元素其中一个属性改变时执行transition效果,值有none(没有属性改变)、all(默认值,所有属性改变),indent(某个属性名,一条transition规则,只能定义

一个属性的变化,不能涉及多个属性,如果要设置多个属性时,需分别设置,中间以逗号隔开)【当其值为none时,transition马上停止执行,当指定为all时,则元素产生任何属性值变化时都将执行transition效

果】。 链接:  css中的能够产生动画的属性列表(transition动画和animation动画适用)

transition-duration :过渡时间,是用来指定元素转换过程的持续时间,单位为s(秒)或ms(毫秒)

transition-timing-function:时间函数,允许你根据时间的推进去改变属性值的变换速率,值ease(逐渐变慢)、linear(匀速)、ease-in(加速) 、ease-out(减速)、ease-in-out:(加速

然后减速)、cubic-bezier:(该值允许你去自定义一个时间曲线) 贝塞尔曲线扫盲 工具网站

transition-delay:延迟,指定一个动画开始执行的时间,也就是说当改变元素属性值后多长时间开始执行transition效果,单位为s(秒)或ms(毫秒)

2 、触发方式

伪类触发::hover : focus :checked :active

js触发:toggleClass

3、以下情况下,属性值改变不能产生过渡效果
background-image,如url(a.jpg)到url(b.jpg)(与浏览器支持相关,有的浏览器不支持)等,浏览器支持情况
float浮动元素
height或width使用auto值
display属性在none和其他值(block、inline-block、inline)之间变换
position在stativ和absolute之间变换

相关文章

  • 客服部新宙六月第二周周中检视

    2018-06-13 星期三 2018-06-13 一、工作方面 1/本周结案率要求达到55% 目前案件数量225...

  • 2018-06-13

    2018-06-13 2018-06-13 《六项精进》日精进打卡 姓名:张云飞 宁波市百雷仕电动工具有限公司 【...

  • webstorm 激活破解方法

    2018-06-13最新更新:最新License serve:https://s.tuzhihao.com:666...

  • 日精进打卡(第341天)

    2018-06-13 姓名:李义 公司:........ 组别:259期利他二组 【知~学习】 背诵 六项精进大纲...

  • 富贵花开3

    富贵花开 黄土高原的北战 2018-06-13 10:56 · 字数 3634 · 阅读 10 · 日记本 三:《...

  • 2018-06-13

    2018-06-13· 字数 546· 阅读 104· 日记本 姓名:周富强 公司:厦门大科机械有限公司 日精进打...

  • 2019在职MBA考试科目有哪些?什么时候考试?

    2019在职MBA考试科目有哪些?什么时候考试? 都学课堂 2018-06-13 浏览量: 15112 随着社会的...

  • 每日父母课堂分享

    日期 2018-06-13 分享内容 【我们每天都忙碌于具体的事务,真正用来思考的时间其实很少,甚至没有。】 而我...

  • 动机至善,私心了无

    2018-06-13 (稻盛哲学学习会)打卡第66天 姓名:祝新华 部门:业务部 组别:待定 【知~学习】 《京...

  • 2-3-8 SeekBar

    标注:本文为个人整理,仅做自己学习参考使用,请勿转载和转发2018-06-13: 初稿。参考博主coder-pig...

网友评论

      本文标题:2018-06-13

      本文链接:https://www.haomeiwen.com/subject/xdyjeftx.html