平凡前端之路_13.CSS3过渡与动画

CSS3的过渡支持

CSS3 过渡(transition)特性能在网页制作中实现的一些简单的动画效果变得更具流线性、平滑性。

指定应用过渡的 CSS 属性 - transition-property

指定应用多个不同的过渡效果时,以逗号隔开。

transition-property可能的值描述
none没有属性会获得过渡效果。
all所有可过渡的属性都将获得过渡效果。
property定义应用过渡效果的 CSS 属性名称,多个以逗号分隔。
eg: 
/** 兼容与支持 */
-webkit-transition-property: opacity;
		transition-property: opacity, height;

指定过渡效果的持续时间 - transition-duration

多个不同的过渡效果时,可以分别指定过渡效果的持续时间,以逗号隔开。
当多个值的多于所有过渡属性的数量时,那么只有相应过渡属性数量的值会生效。
当多个值的少于所有过渡属性的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有过渡效果重复应用该值,即共用相同的持续时间。

transition-duration可能的值描述
time指定过渡效果花费的时间。(以秒或毫秒计)。
0默认值。意味着不会有过渡效果。
eg: 
/** 兼容与支持 */
-webkit-transition-duration: 1000ms;
		transition-duration: 1000ms, 1s;

指定过渡效果的时间曲线 - transition-timing-function

多个不同的过渡效果时,可以分别指定过渡效果的时间曲线,以逗号隔开。
当多个值的多于所有过渡属性的数量时,那么只有相应过渡属性数量的值会生效。
当多个值的少于所有过渡属性的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有过渡效果重复应用该值,即共用相同的时间曲线。

transition-timing-function可能的值描述
linear规定以相同速度开始至结束的过渡效果。
ease默认值。规定慢速开始,然后变快,然后慢速结束的过渡效果。
ease-in规定以慢速开始的过渡效果。
ease-out规定以慢速结束的过渡效果。
ease-in-out规定以慢速开始和结束的过渡效果。
eg: 
/** 兼容与支持 */
-webkit-transition-timing-function: ease;
		transition-timing-function: ease, linear;

指定过渡效果的延迟时间 - transition-delay

多个不同的过渡效果时,可以分别指定过渡效果的延迟时间,以逗号隔开。
当多个值的多于所有过渡属性的数量时,那么只有相应过渡属性数量的值会生效。
当多个值的少于所有过渡属性的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有过渡效果重复应用该值,即共用相同的延迟时间。

transition-delay 可能的值描述
time指定过渡效果何时开始。允许负值。(以秒或毫秒计)。
0默认值。意味着不会有延迟效果。
eg: 
/** 兼容与支持 */
-webkit-transition-delay  : 1000ms;
		transition-delay  : 1000ms, 1s;

过渡简写 - transition

CSS可以使用过渡简写 - transition,用于一次性集中定义各种过渡效果。

属性描述
transition-delay指定过渡效果何时开始。默认是 0。
transition-duration指定过渡效果花费的时间。默认是 0。
transition-property指定应用过渡的 CSS 属性的名称。
transition-timing-function指定过渡效果的时间曲线。默认是 “ease”。
eg:
/** 约定的简写顺序*/
-webkit-transition: [property] [duration] [timing-function] [delay];
		transition: [property] [duration] [timing-function] [delay];	
/**
	在简写的形式下,transition-delay 不会脱离transition-duration单独出现,
	transition-delay总会在transition-duration之后
*/

/** 兼容与支持 */
-webkit-transition: opacity 2000ms ease 1s;
		transition: opacity 2000ms ease 1s;
		
/** 多个css 属性 可以分别指定 过渡效果*/ 				
-webkit-transition: opacity 2000ms ease 1s, height 1s linear 1s;
		transition: opacity 2000ms ease 1s, height 1s linear 1s;					

如果省略某个属性不写,那么将自动取默认值。


CSS3的动画支持

CSS3 动画 (animation) 特性支持在网页制作中实现更复杂的样式变化,以及一些交互效果。

指定动画效果名称 - animation-name

指定应用多个不同的动画效果时,以逗号隔开。

animation-name可能的值描述
none无动画效果。
keyframename定义应用动画效果,多个以逗号分隔。
eg: 
/** 兼容与支持 */
-webkit-animation-name: fadeIn;
		animation-name: fadeIn, fadeOut;

指定动画效果的持续时间 - animation-duration

多个不同的动画效果时,可以分别指定动画效果的持续时间,以逗号隔开。
当多个值的多于所有动画的数量时,那么只有相应动画数量的值会生效。
当多个值的少于所有动画的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有动画效果重复应用该值,即共用相同的持续时间。

animation-duration可能的值描述
time指定动画效果花费的时间。(以秒或毫秒计)。
0默认值。意味着不会有过渡效果。
eg: 
/** 兼容与支持 */
-webkit-animation-duration: 1000ms;
		animation-duration: 1000ms, 1s;

指定动画效果的时间曲线 - animation-timing-function

多个不同的动画效果时,可以分别指定动画效果的时间曲线,以逗号隔开。
当多个值的多于所有动画的数量时,那么只有相应动画数量的值会生效。
当多个值的少于所有动画的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有动画效果重复应用该值,即共用相同的时间曲线。

animation-timing-function可能的值描述
linear规定以相同速度开始至结束的过渡效果。
ease默认值。规定慢速开始,然后变快,然后慢速结束的过渡效果。
ease-in规定以慢速开始的过渡效果。
ease-out规定以慢速结束的过渡效果。
ease-in-out规定以慢速开始和结束的过渡效果。
eg: 
/** 兼容与支持 */
-webkit-animation-timing-function: ease;
		animation-timing-function: ease, linear;

指定动画效果的延迟时间 - animation-delay

多个不同的动画效果时,可以分别指定动画效果的延迟时间,以逗号隔开。
当多个值的多于所有动画的数量时,那么只有相应动画数量的值会生效。
当多个值的少于所有动画的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有动画效果重复应用该值,即共用相同的延迟时间。

animation-delay 可能的值描述
time指定动画效果何时开始。允许负值。(以秒或毫秒计)。
0默认值。意味着不会有延迟效果。
eg: 
/** 兼容与支持 */
-webkit-animation-delay  : 1000ms;
		animation-delay  : 1000ms, 1s;

指定动画效果的重复次数 - animation-iteration-count

多个不同的动画效果时,可以分别指定动画效果的重复次数,以逗号隔开。
当多个值的多于所有动画的数量时,那么只有相应动画数量的值会生效。
当多个值的少于所有动画的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有动画效果重复应用该值,即共用相同的重复次数。

animation-iteration-count 可能的值描述
number指定动画效果重复次数。
infinite规定动画应该无限次播放。
1默认值。定动画效果一次
eg: 
/** 兼容与支持 */
-webkit-animation-iteration-count: 2;
		animation-iteration-count: infinite, 2;

指定动画效果循环交替反向效果 - animation-direction

多个不同的动画效果时,可以分别指定动画效果的轮流反向效果,以逗号隔开。
当多个值的多于所有动画的数量时,那么只有相应动画数量的值会生效。
当多个值的少于所有动画的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有动画效果重复应用该值,即共用相同的轮流反向效果。

animation-direction 可能的值描述
alternate动画正向双向播放。在奇数次(1、3、5…)正向,在偶数次(2、4、6…)反向播放。
alternate-reverse动画反向双向播放。在奇数次(1、3、5…)反向,在偶数次(2、4、6…)正向播放。
reverse动画反向播放。
normal默认值。动画应该正向播放。
eg: 
/** 兼容与支持 */
-webkit-animation-direction: alternate;
		animation-direction: normal, alternate;

指定动画不播放时填充效果 - animation-fill-mode

多个不同的动画时,可以分别指定动画不播放时填充效果,以逗号隔开。
当多个值的多于所有动画的数量时,那么只有相应动画数量的值会生效。
当多个值的少于所有动画的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有动画重复应用该值,即共用相同的动画不播放时填充效果。

动画不播放有两种情形:
1.当动画完成后不播放时
2.当动画有设置延迟时间未开始播放时

animation-fill-mode可能的值描述
forwards当动画完成后,填充最后一帧属性值。
backwards当动画有设置延迟时间未开始播放,填充第一帧属性值。
both同时应用forwards和backwards。
none默认值。当动画不播放,不填充任何一帧属性值,仅展示自身的属性值。

动画的第一帧和最后一帧的计算还受 animation-direction 和 animation-iteration-count 的影响

animation-directionanimation-iteration-count最后一帧
normaleven or odd100% or to
reverseeven or odd0% or from
alternateodd100% or to
alternateeven0% or from
alternate-reverseodd0% or from
alternate-reverseeven100% or to
animation-direction第一帧
normal or alternate0% or from
reverse or alternate-reverse00% or to
eg: 
/** 兼容与支持 */
-webkit-animation-fill-mode: backwards;
		animation-fill-mode: forwards, backwards;

指定动画效果运行状态 - animation-play-state

多个不同的动画效果时,可以分别指定动画效果的运行状态,以逗号隔开。
当多个值的多于所有动画的数量时,那么只有相应动画数量的值会生效。
当多个值的少于所有动画的数量时,那么这多个值会作为整体重复。
当只有一个值时,表示所有动画效果重复应用该值,即共用相同的运行状态 。

animation-play-state可能的值描述
paused动画暂停。
running默认值。动画运行播放。
eg: 
/** 兼容与支持 */
-webkit-animation-play-state: paused;
		animation-play-state: paused, running;

动画简写 - animation

CSS可以使用动画简写 - animation,用于一次性集中定义各种动画效果。

属性描述
animation-delay指定动画效果何时开始。默认是 0。
animation-duration指定动画效果花费的时间。默认是 0。
animation-property指定应用动画的 CSS 属性的名称。
animation-timing-function指定动画效果的时间曲线。默认是 “ease”。
animation-fill-mode指定动画不播放时填充效果
animation-play-state指定动画效果运行状态
eg:
/** 约定的简写顺序*/
-webkit-animation: [name] [duration] [timing-function] [delay] [fill-mode] [play-state];
		animation: [name] [duration] [timing-function] [delay] [fill-mode] [play-state];	
/**
	在简写的形式下,animation-delay 不会脱离animation-duration单独出现,
	animation-delay总会在animation-duration之后
*/

/** 兼容与支持 */
-webkit-animation: opacity 2000ms ease 1s forwards;
		animation: opacity 2000ms ease 1s forwards;
		
/** 多个css 属性 可以分别指定 过渡效果*/ 				
-webkit-animation: opacity 2000ms ease 1s forwards, height 1s linear 1s backwards;
		animation: opacity 2000ms ease 1s forwards, height 1s linear 1s, backwards;					

如果省略某个属性不写,那么将自动取默认值。


CSS 知识题

问题答案
width 和 height 完全支持 transitionwidth:auto; 不支持 transition
magin-left:100% 和 translateX(100%) 偏移效果是一样的translate 百分比值是基于元素本身宽高。magin 百分比是基于其父对象的宽高。
文本流竖直向左display:flex;flex-flow: column wrap-reverse;(每个文字用标签包裹,通过height 使文本流换行。)
opacity:0visibility:hiddendisplay:none
是否占据页面空间占据占据不占据
子元素设置该属性其他值是否可以继续显示不可以可以不可以
自身绑定的时间是否能继续触发能触发不能触发不能触发
是否影响遮挡的元素触发事件影响不影响不影响
属性值改变是否产生回流(reflow)不产生不产生产生
属性值改变是否产生回流(repaint)不一定产生产生产生
该属性是否支持transition支持不支持不支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值