(十三).CSS3中的变换(transform),过渡(transition),动画(animation)
1 变换 transform
1.1 变换相关 CSS 属性
| CSS 属性名 | 含义 | 值 |
|---|---|---|
| transform | 设置变换方式 | |
| transform-origin | 设置变换的原点 | 使用关键字或坐标设置位置 |
| transform-style | 设置子元素处于3D空间还是2D空间 | flat:2D空间,默认值。 preserve-3d:3D空间 |
| perspective | 设置观察者与平面距离 | 长度 |
| perspective-origin | 设置观察者位置 | 使用关键字或坐标设置位置 |
| backface-visibility | 设置元素背面是否可见 | visible:可见,默认值。 hidden:不可见 |
总结:
1. 行内元素无法设置变换
2. 需要设置给变换的元素的属性:
transform、tranform-origin、backface-visibility
需要设置给变换元素的父元素的属性:
transform-style、perspective、perspective-origin
1.2 2D 变换的方法
① 位移 translate 方法
translateX() 设置水平方向位移
translateY() 设置垂直方向位置
translate() 同时设置水平方向和垂直方向的位移
位移的变换方法参数的设置规则:
1. 使用长度设置位移距离,允许负值
使用百分比,水平位移参照元素自身宽度,垂直位移参照元素自身高度
2. translate() 如果只设置一个值,表示水平位移的距离,垂直方向不位移。
位移的应用(绝对或固定定位元素的水平和垂直居中):
/* 水平垂直居中的方案 */
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
② 缩放 scale 方法
scaleX() 设置水平方向的缩放比例
scaleY() 设置垂直方向的缩放比例
scale() 同时设置水平方向和垂直方向的缩放比例
缩放的变换方法参数的设置规则:
1. 使用纯数字(倍数)或者百分比表示缩放的比例
2. 使用负数元素自身会反转过来
3. scale() 如果只设置一个值,表示同时设置水平方向和垂直方向的缩放比例
③ 旋转 rotate 方法
rotate()
变换方法参数的设置规则:
1. 使用角度,可以是负值,角度单位是 deg
2. 默认是顺时针旋转
3. 默认旋转中心是元素中心
1.3 3D 变换的方法
① 3D 位移
translateZ() 设置沿z轴位移的距离
translate3D(x,y,z) 同时设置x、y、z轴位移的距离,必须设置3个长度
② 3D 缩放
scaleZ()
scale3D(x,y,z) 同时设置x、y、z轴的缩放,必须设置三个倍数
3D 缩放没有效果!
③ 3D 旋转
rotateX() x轴旋转
rotateY() y轴旋转
rotateZ() z轴旋转,等同于2D旋转 rotate()
rotate3D() 同时沿x轴、y轴、z轴一起旋转,设置4个值,前三个都是0或者1,对应的轴是否旋转,第4个值设置角度
2 过渡 transition
2.1 过渡相关 CSS 属性
| CSS 属性名 | 含义 | 值 |
|---|---|---|
| transition-property | 设置哪些属性可以过渡 | all,默认值. 1个或多个属性,使用逗号分隔。 |
| transition-duration | 设置过渡的持续时间 | 时间单位 s、ms |
| transition-delay | 设置过渡的延迟时间 | 时间单位 s、ms |
| transition-timing-function | 设置过渡的运动曲线 | |
| transition | 复合属性 | 1个时间表示duration,如果两个时间第一是duration,第二个是delay |
哪些 CSS 属性可以过渡?
1. 属性的值是长度的,如 width、height、margin、padding、border-width 等等
2. 属性的值是颜色的,如 color、background-color、border-color 等等
3. 属性的值是纯数字,如 opacity、font-weight
4. 变换属性 transform
什么时候设置过渡相关的属性 transition?
在元素的样式变化之前,提前设置过渡相关的属性。
贝塞尔曲线在线工具:
transition-timing-function 设置过渡运动曲线:
ease 平滑过渡,默认值
linear 匀速
ease-in 加速运动
ease-out 减速运动
ease-in-out 先加速再减速
cubic-bezier() 特定的贝塞尔曲线设置运动曲线
steps() 分步运动 ,第一个参数设置步数,第二个参数指定每一步发生的时间点,默认是end,也可以选择start,end 表示先等待,start表示先运动
step-start 等同于 steps(1,start)
step-end 等同于 steps(1,end)
2.2 触发过渡的条件
用户的行为和动作导致元素样式发生改变,如果元素设置了过渡效果,样式的改变具有过渡动画效果
1. 伪类选择器 :hover :active :focus :checked
2. JS 的事件
3. CSS 媒体查询
3 动画 animation
3.1 关键帧
@keyframes 关键帧名字 {
from {}
to {}
}
@keyframes 关键帧名字 {
100% {}
}
@keyframes 关键帧名字 {
from {}
40% {}
80% {}
to {}
}
Tips:在关键帧中使用2d或3d变换,需要设置相关元素或父元素的属性
关键帧与元素的关系:
1. 一个元素可以设置多个关键帧
2. 一个关键帧可以设置到多个元素上
3.2 动画相关 CSS 属性
| CSS 属性名 | 含义 | 值 |
|---|---|---|
| animation-name | 设置关键帧 | 多个使用功逗号分隔 |
| animation-duration | 设置动画持续时间 | 时间 |
| animation-delay | 设置动画延迟时间 | 时间 |
| animation-timing-function | 设置动画运动曲线 | 同 transition-timing-function |
| animation-iteration-count | 设置动画执行次数 | 数字。 infinite:无数次 |
| animation-direction | 设置动画运动方向 | normal:正常方向,默认值。 reverse:反向运动。 alternate:交替运动。 alternate-reverse:反向交替运动。 |
| animation-play-state | 设置动画运动状态 | running:正在运动,默认值。 paused:暂停。 |
| animation-fill-mode | 设置规定动画在播放之前或之后的显示状态 | none:默认值。 forwards:动画结束后处于结束帧状态。 backwards:动画开始之前处于起始帧状态。 both:兼具forwards和backwards的状态 |
| animation | 复合属性 | 不限制顺序和数量,第一个时间表示animation-duration,第二个时间表示animation-delay |
(十三).CSS3中的变换(transform),过渡(transition),动画(animation)的更多相关文章
- CSS3中动画属性transform、transition 和 animation
CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明: transform 从字面来看transform的释义为改变,使 ...
- css3实践之图片轮播(Transform,Transition和Animation)
楼主喜欢追求视觉上的享受,虽常以牺牲性能无法兼容为代价却也乐此不疲.本文就通过一个个的demo演示来简单了解下css3下的Transform,Transition和Animation. 本文需要实现效 ...
- CSS3 Transform、Transition和Animation属性总结
CSS3的三个与变形和动画啊相关的属性: Transform 浏览器支持情况: Internet Explorer 10.Firefox.Opera 支持 transform 属性. Internet ...
- CSS3中和动画有关的属性transform、transition 和 animation
CSS3中和动画有关的属性有三个 transform. transition 和 animation.下面来一一说明: transform 从字面来看transform的释义为 ...
- transform、transition 和 animation区别
CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明: transform 从字面来看transform的释义为改变,使 ...
- CSS3中动画属性transform、transition和animation
Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能 ...
- css3中的translate,transform,transition的区别
translate:移动,transform的一个方法 通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) ...
- css3中的变换、动画和过渡
变换:分为2d变换和3d变换,但一次只能用一个变换属性,多个的话最后一个会覆盖前面所有最终被浏览器实现,变换可以成为过渡和动画的一个待变参数(类似width,opacity等). 过渡:是动画的初始模 ...
- CSS3中translate、transform和translation的区别和联系
translate:移动,transform的一个方法 通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) ...
- CSS3详解:transform、transition
CSS3 transform是什么? transform的含义是:改变,使-变形:转换 CSS3 transform都有哪些常用属性? transform的属性包括:rotate() / skew() ...
随机推荐
- 为什么手游选择lua热更新方案。
https://www.zhihu.com/question/29603593 主要因为iOS系统的原因. 在这个知乎问题里,有两条回答,能解释我的疑惑.如下两个图. 我个人总结为,编译型语言(C#) ...
- C# DateTime转换为字符串
12小时制:DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") 24小时制:DateTime.Now.ToString("yyyy- ...
- 像MIUI一样做Zabbix二次开发(1)——MIUI之于Android,乐维监控之于Zabbix
摘要 文章主要介绍:7年做Zabbix二次开发,讲述那些从技术方向的选择,到开发.架构设计.深度定制,到我们的更多前瞻性想法. 关于MIUI "专注.极致.口碑.快"成了雷布斯的口 ...
- 使用HttpClient4.5 使用MultipartEntityBuilder 类发送 multipart/formdata 格式给第三方接口 失败的原因
1.使用MultipartEntityBuilder的setCharset方法设置 utf-8格式2.在httppost 请求头上 加上Content-Type", "multip ...
- String.prototype.replace--替换字符串
str.replace(regexp|substr, newSubStr|function) API本身不改变原本的字符串,只是返回新的字符串例子:用函数作为第二个参数function rep ...
- Python Cli 编写指南
Python Cli 编写指南 python实现cli 环境: python 3.8 库 python自带argparse 指南 简单示例 : cli.py import argparse def c ...
- 060_关于Component Event的介绍 (本文为转载)
转载自:https://www.cnblogs.com/zero-zyq/p/8977093.html lightning component基于事件驱动模型来处理用户界面的交互.这种事件驱动模型和j ...
- vscode调试openresty
一.快速上手 1.软件下载 官网地址:https://code.visualstudio.com/ 安装视频:https://code.visualstudio.com/docs/getstarted ...
- noi 1.1 5 输出保留12位小数的浮点数
描述 读入一个双精度浮点数,保留12位小数,输出这个浮点数. 输入 只有一行,一个双精度浮点数. 输出 也只有一行,保留12位小数的浮点数. 样例输入 3.1415926535798932 样例输出 ...
- 启动appium服务时报错,服务不通:Original error: Could not find 'apksigner.jar'
启动时报错,服务不通:Original error: Could not find 'apksigner.jar' 是因为少了个文件,添加个文件就好了,可以参考下面的帖子. 可以参考这个帖子:http ...