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?

在元素的样式变化之前,提前设置过渡相关的属性。

贝塞尔曲线在线工具:

https://cubic-bezier.com

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)的更多相关文章

  1. CSS3中动画属性transform、transition 和 animation

    CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明:        transform   从字面来看transform的释义为改变,使 ...

  2. css3实践之图片轮播(Transform,Transition和Animation)

    楼主喜欢追求视觉上的享受,虽常以牺牲性能无法兼容为代价却也乐此不疲.本文就通过一个个的demo演示来简单了解下css3下的Transform,Transition和Animation. 本文需要实现效 ...

  3. CSS3 Transform、Transition和Animation属性总结

    CSS3的三个与变形和动画啊相关的属性: Transform 浏览器支持情况: Internet Explorer 10.Firefox.Opera 支持 transform 属性. Internet ...

  4. CSS3中和动画有关的属性transform、transition 和 animation

    CSS3中和动画有关的属性有三个  transform. transition 和 animation.下面来一一说明:        transform     从字面来看transform的释义为 ...

  5. transform、transition 和 animation区别

    CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明:        transform   从字面来看transform的释义为改变,使 ...

  6. CSS3中动画属性transform、transition和animation

    Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能 ...

  7. css3中的translate,transform,transition的区别

    translate:移动,transform的一个方法               通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) ...

  8. css3中的变换、动画和过渡

    变换:分为2d变换和3d变换,但一次只能用一个变换属性,多个的话最后一个会覆盖前面所有最终被浏览器实现,变换可以成为过渡和动画的一个待变参数(类似width,opacity等). 过渡:是动画的初始模 ...

  9. CSS3中translate、transform和translation的区别和联系

    translate:移动,transform的一个方法               通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) ...

  10. CSS3详解:transform、transition

    CSS3 transform是什么? transform的含义是:改变,使-变形:转换 CSS3 transform都有哪些常用属性? transform的属性包括:rotate() / skew() ...

随机推荐

  1. IEC104

    IEC10X协议源码 https://github.com/airpig2011/IEC104 一.源码编译 下载源代码并解压 进入文件夹下test目录,对main.c进行修改 我们使用套接字来实现服 ...

  2. debian / deepin (Ubuntu)安装 mariadb

    debian / deepin 安装 mariadb 安装步骤: LINUX安装mariadb本质和mysql一致,可以参考官网教程进行安装.https://mariadb.org/download/ ...

  3. COM三大接口:IUnknown、IClassFactory、IDispatch。

    (1)COM组件有三个最基本的接口类,分别是IUnknown.IClassFactory.IDispatch. COM规范规定任何组件.任何接口都必须从IUnknown继承,IUnknown包含三个函 ...

  4. 像MIUI一样做Zabbix二次开发(6)——应用场景和规划

    其他使用场景 监控做为一个重要的管理手段,存在很多的使用场景,简单列举我们现在碰到的: 1.     系统集成 事件管理流程集成:配置管理集成,自动CI获取,提高CMDB准确.实时性:知识库集成,提高 ...

  5. leetcode 98. 验证二叉搜索树 【一遍dfs】【时间击败99.72%】【内存击败94.23%】

    复用left[],[时间击败73.33%]-->[时间击败99.72%] [内存击败36.17%]-->[内存击败94.23%] dfs(r)返回值=new long[]{包括r节点的子树 ...

  6. 【音视频】FFmpeg打开视频 | 保存图片

    1.初始化FFmpeg av_register_all(); //初始化FFMPEG 调用了这个才能正常使用编码器和解码器 但是这个函数如今已经没什么用了,它的就是把你定义和系统初始化的编码器和解码器 ...

  7. Js实现监听input输入

    实现原理: 默认input第一个带光标,第一个输完自动跳转到第一个输入框,以此类推, 当删除某一个输入框中的值重新输入,输入完后自动跳转到下一个 代码实现: <div class="c ...

  8. 关于Windows系统TCP参数修改

    在做压测时,往往会因为TCP连接数较少,导致并发数上不去就报错,下面我们一起看看如何修改Windows的TCP参数 1.本地注册表 打开注册表快捷键:Windows+R建,输入regedit,按下键盘 ...

  9. k8s排错(Unhealthy)

      1,组件 Unhealthy 通过kubeadm安装好kubernetes v1.18.6 查看集群状态,发现组件controller-manager 和scheduler状态 Unhealthy

  10. memoのQt自动调整窗口尺寸

    折腾了好久,好久.终于搞出一个自认为还算可以的方案: QTimer::singleShot(0, this, [this]{ this->adjustSize(); }); 这个解决方案确实有点 ...