admin管理员组文章数量:1122850
空间转换3D , 动画
1.3d转换
1.认识坐标系
X 轴 往右越大,是正值, 否则反之
Y 轴 往下越大,是正值,否则反之
Z轴 (指向我们)越大,是正值,否则反之
2.3D位移写法
完整写法
transform: translate3d(x, y, z);
分开写法
transform: translateX(100px);
transform: translateY(100px);
transform: translateZ(100px);
3.透视perspective的作用
透视的作用: 空间转换时,为元素添加近大远小、近实远虚的视觉效果
-
取值范围经常在 800px ~ 1200px 之间。
-
一定给父亲元素添加
-
透视距离也称为视距,所谓的视距就是人的眼睛到屏幕的距离。
有了透视的加持,我们3d旋转效果会比较明显。
perspective: 800px;
4.3D旋转rotate
默认的旋转中心在盒子的中心位置。
body {/* 父级添加透视 */perspective: 400px;
}img {transition: all 1s;
}img:hover {transform: rotateX(360deg);
}
5.立体呈现
让子盒子在父盒子内有空间的展示,此时可以给父亲添加
transform-style: preserve-3d;
2.动画
动画的最大特点是不用鼠标触发,自动的,反复执行某些动画.
1.定义动画
@keyframes dance {from {transform: scale(1)}to {transform: scale(1.5)}
}
或者是
@keyframes dance {0% {transform: scale(1)} 100% {transform: scale(1.5)}}
2.调用动画animation
img {width: 200px;/* 2. 使用动画 animation: 动画名称 执行时间; infinite 循环*/animation: dance .5s infinite;
}
3.动画属性
-
动画名字参照css类选择器命名
-
动画时长和延迟时间别忘了带单位 s
-
infinate 无限循环动画(重复次数)
-
alternate 为反向 就是左右来回执行动画(跑马灯)
-
forwards 动画结束停留在最后一帧状态, 不循环状态使用
-
linear 让动画匀速执行
4.鼠标经过暂停动画
/* 鼠标经过box, 则 ul 停止动画 */
.box:hover ul {animation-play-state: paused;
}
5.多组动画
/* 我们想要2个动画一起执行 animation: 动画1, 动画2, ... 动画n */
animation: run 1s steps(12) infinite, move 5s linear forwards;
版权声明:本文标题:空间转换3D , 动画 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1702447777a591457.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论