您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页2D&3D 旋转与动画

2D&3D 旋转与动画

来源:华佗小知识

2D&3D 旋转与动画

一.字体图标

然后引入样式表,字体样式表是iconfont.css

接着调用类名 class=“iconfont xxx”,xxx是想用的图标的类名,iconfont类规定了一些样式,可自定义修改

二.平面转换

1.概念

改变盒子在平面内的形态(位移、旋转、缩放)

2D转换

平面转换属性
transform

2.位移

语法:
transform:translate(水平移动距离,垂直移动距离)

取值(正负均可):
像素单位数值
百分比(参照物为盒子自身尺寸)

注意:x轴正向为右,y轴正向为下

技巧:
translate()如果只给出一个值,表示x轴方向移动距离
单独设置某个方向的移动距离:translateX( )&translateY( )

位移-绝对定位居中:transform(-50%,-50%)

3.旋转

语法
transform: rotate(角度)
角度单位是deg

技巧:取值正负均可

transform:rotate(360deg)
测试旋转必须有过渡属性

转换原点

语法:
默认原点是盒子中心点
transform-origin:原点水平位置 原点垂直位置

取值:
方位名词(left、top、right、bottom、center)
像素单位数值
百分比(参照盒子自身尺寸计算)

多重转换技巧

transform: translate() rotate()
这样是边走边转
如果两个写反的话,x轴不断变换,会转七八糟的

如果分开写的话,会有层叠效果,下面的会替代上面的

4.缩放

transform: scale(x 轴缩放倍数,y轴缩放倍数)

技巧:
一般情况下,只为scale设置一个值,表示x轴和y轴等比例缩放
transform: scale(缩放倍数)

5.渐变

渐变是多个颜色逐渐变化的视觉效果
一般用于设置盒子的背景

background-image: linear-gradient(
	颜色1,
	颜色2
)

三.空间转换

1.简介

空间:是从坐标轴角度定义的。x、y和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同

空间转换也叫3D转换

属性:transform

语法:
transform:translate3d(x,y,z)
transform:translateX(值)
transform:translateY(值)
transform:translateZ(值)

取值(正负均可)
像素单位数值
百分比

2.透视

默认情况下无法观测到Z轴位移效果

Z轴是视线方向,移动效果应该是距离的远或近,电脑屏幕是平面,默认无法观察远近效果

属性(添加给父级)

perspective:值
取值:像素单位数值,数值一般在800-1200

3.空间旋转

语法:
transform: rotateZ(值)
transform: rotateX(值)
transform: rotateY(值)

判断旋转方向
左手法则:左手握住旋转轴,拇指指向正值方向,手指弯曲方向为旋转正值方向

拓展
rotate3d(x,y,z,角度度数):用来设置自定义旋转轴的位置及旋转的角度

x,y,z取值为0-1之间的数字

4.立体呈现

实现方法:
添加 transform-stytle:preserve-3d;
使子元素处于真正的3d空间

步骤:
1.盒子父元素添加transform-stytle:preserve-3d
2.按需求设置盒子的位置(位移或旋转)

5.空间缩放

语法:
transform:scaleX(倍数)
transform:scaleY(倍数)
transform:scaleZ(倍数)
transform:scale3d(x,y,z)

四.动画

1.和过渡的区别

过渡:实现2个状态之间的变化过程

动画效果:实现多个状态间的变化过程,动画可过程控制(重复播放、最终画面、是否暂停)

2.相关概念

动画的本质是快速切换大量图片在人脑中形成的具有连续性的画面

构成动画的最小单元:帧或动画帧

3.实现步骤

1.定义动画

@keyframes 动画名称{  //完成两个状态之间的变化
	from{}
	to{}
}

@keyframes 动画名称{  //多个状态,百分比指的是动画总时长的占比
	0%{}
	10%{}
	15%{}
	100%{}
}

2.使用动画

animation:动画名称 动画花费时长

4.动画属性

animation:动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态

注意:
动画名称和动画时长必须赋值
取值不分先后顺序
如果有2个时间值,第一个时间表示动画时长,第二个时间表示延迟时间

animation:名称 时长 infinite(无限循环,重复次数的关键词) alternate(有正有反)

测试执行完毕时状态,要去掉重复次数和动画方向,backwards是默认值,动画停留在最初状态,一般加forwards,动画停留在结束状态

5.属性总结

animation-name(动画名称)

animation-duration(动画时长)

animation-delay(延迟时间)

animation-fill-mode(动画执行完毕状态): forwards:最后一帧状态,backwards:第一帧状态

animation-timing-function(速度曲线):steps(数字):逐帧动画

animation-iteration-count(重复次数):infinite:无限循环

animation-direction(动画执行方向):alternate:反向

animation-play-state(暂停动画):paused:暂停,通常配合:hover使用

animation:
动画1,
动画2,
;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务