首页 前端知识 CSS样式变换效果及动画

CSS样式变换效果及动画

2024-02-23 11:02:51 前端知识 前端哥 724 755 我要收藏

笔记总结

  • 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>
复制

效果如下
在这里插入图片描述

转载请注明出处或者链接地址:https://www.qianduange.cn//article/2573.html
标签
css动画
评论
发布的文章

程序员的中秋节

2024-03-09 09:03:01

js中几种追加元素的方法

2024-03-08 10:03:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!