笔记总结
-
CSS的变换效果
-
transform 2d转换
-
translate()进行平移效果,有2个参数对应X、Y轴。
-
scale()用于缩放标签,当参数只有一个时,整体放大和缩小,当参数是两个时,可以分别调整x、y轴的缩放倍数。
-
rotate()用于旋转元素。rotateX() rotateY() rotateZ() 分别绕着xyz轴旋转
-
skew()有两个参数分别代表在x轴方向的扭曲程度,以及在y轴方向的扭曲程度。
-
matrix()把所有2D转换方法组合在一起。matrix()方法需要六个参数,包含数学函数,允许你:旋转、缩放、移动以及倾斜。
-
-
trabsform 3d转换
- Perspective:同来控制视距的属性,属性值事指距离屏幕的像素值。(例Perpective:800px)
- transform-style:用来transform的显示效果,有平面模式(fiat),3d模式(preserve-3d)
- transform-origin:用来控制旋转轴的位置
-
-
过渡效果
transition:默认是所有属性都进行过渡,参数列表(name|duration|delay)。
transition支持部分属性过渡,例如你可以指定宽高属性拥有过渡属性,这时其他属性将不再支持过渡。
-
动画效果
@keyframes用来设置动画效果,可以使用from和to定义开始动画和结束动画,也可以使用百分比控制整个动画的节奏
作业
实现代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>图片魔方</title> </head> <style> body { perspective: 800px; } @keyframes myAnimation{ from{ transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); } to{ transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg); } } .con { width: 200px; height: 200px; margin: 300px auto; position: relative; border: 1px solid red; transform-style: preserve-3d; transform: rotateX(30deg) rotateY(30deg); animation: myAnimation 10s infinite linear; } .con>img { width: 200px; height: 200px; position: absolute; } .con:hover > img:first-child{ transform: translateZ(-200px); } .con > img:first-child{ transform: translateZ(200px); } .con:hover > img:nth-child(2){ transform: translateX(-200px) rotateY(90deg); } .con>img:nth-child(2) { left: -200px; transform: rotateY(90deg); transform-origin: right; } .con:hover>img:nth-child(3) { transform: translateX(200px) rotateY(-90deg); } .con>img:nth-child(3) { right: -200px; transform-origin: left; transform: rotateY(-90deg); } .con:hover>img:nth-child(4) { transform: translateY(-200px) rotateX(-90deg); } .con>img:nth-child(4) { top: -200px; transform-origin: bottom; transform: rotateX(-90deg); /* transform-origin:left; transform: rotateY(-90deg); */ } .con:hover>img:nth-child(5) { transform: translateY(200px) rotateX(90deg); } .con>img:nth-child(5) { bottom: -200px; transform-origin: top; transform: rotateX(90deg); } .con:hover>img:last-child { transform: translateZ(400px); } .con>img:last-child { transform: translateZ(200px); } </style> <body> <div class="con"> <img src="./1.png" alt=""> <img src="./2.png" alt=""> <img src="./3.png" alt=""> <img src="./衣服.png" alt=""> <img src="./5.jpg" alt=""> <img src="./6.jpg" alt=""> </div> </body> </html>
复制
效果如下