手敲女神动态图,前端练手小项目

1.效果展示

视频效果显示
旋转图片展示

2.源码

2.1html部分

<body>
		<div class="cube">
			<div class="box1"><img src="./img/imgs/1.jpg"></div>
			<div class="box2"><img src="./img/imgs/2.jpg"></div>
			<div class="box3"><img src="./img/imgs/3.jpg"></div>
			<div class="box4"><img src="./img/imgs/4.jpg"></div>
			<div class="box5"><img src="./img/imgs/5.jpg"></div>
			<div class="box6"><img src="./img/imgs/6.jpg"></div>
			<div class="box7"><img src="./img/imgs/1.jpg"></div>
			<div class="box8"><img src="./img/imgs/2.jpg"></div>
			<div class="box9"><img src="./img/imgs/3.jpg"></div>
			<div class="box10"><img src="./img/imgs/4.jpg"></div>
			<div class="box11"><img src="./img/imgs/5.jpg"></div>
			<div class="box12"><img src="./img/imgs/6.jpg"></div>
		</div>
	</body>

2.2 部分

<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.3/css/all.css" rel="stylesheet">
*{
    padding:0;
    margin:0;
   }
 .cube{
    width:200px;
    height:200px;
    position:relative;
    margin:300px 0 0 750px;
    transform: rotateY(360deg) ;
    transform-style: preserve-3d;
    animation: rotate 10s infinite linear;
   }
@keyframes rotate{
    0%{
     transform:rotateX(0deg) translateZ(0) ;
      }
   100%{
    transform:rotateX(1turn) translateZ(1turn);
       }
   }
html{
   perspective: 10000px;
    }
.cube>div{
   position:absolute;
         }
img{
     width:200px;
     height:200px;
    }
.cube .box1{
     transform: rotateY(0) translateZ(400px);
   }
.cube .box2{
     transform: rotateY(30deg) translateZ(400px);
   }
.cube .box3{
     transform: rotateY(60deg) translateZ(400px);
     }
.cube .box4{
      transform: rotateY(90deg) translateZ(400px);
     }
.cube .box5{
       transform: rotateY(120deg) translateZ(400px);
     }
.cube .box6{
    transform: rotateY(150deg) translateZ(400px);
    }
.cube .box7{
    transform: rotateY(180deg) translateZ(400px);
   }
.cube .box8{
     transform: rotateY(210deg) translateZ(400px);
    }
.cube .box9{
     transform: rotateY(240deg) translateZ(400px);
    }
.cube .box10{
     transform: rotateY(270deg) translateZ(400px);
   } 
.cube .box11{
    transform: rotateY(300deg) translateZ(400px);
     }
.cube .box12{
     transform: rotateY(330deg) translateZ(400px);
    }
.cube:hover .box1{
      transform: rotateY(0) translateZ(600px);
     }
.cube:hover .box2{
      transform: rotateY(30deg) translateZ(600px);
    }
.cube:hover .box3{
      transform: rotateY(60deg) translateZ(600px);
    }
.cube:hover .box4{
       transform: rotateY(90deg) translateZ(600px);
     }
.cube:hover:hover .box5{
     transform: rotateY(120deg) translateZ(600px);
     }
.cube:hover .box6{
      transform: rotateY(150deg) translateZ(600px);
     }
.cube:hover .box7{
      transform: rotateY(180deg) translateZ(600px);
    }
.cube:hover .box8{
      transform: rotateY(210deg) translateZ(600px);
     }
.cube:hover .box9{
     transform: rotateY(240deg) translateZ(600px);
    }
.cube:hover .box10{
     transform: rotateY(270deg) translateZ(600px);
     }
.cube:hover .box11{
       transform: rotateY(300deg) tanslateZ(600px);
    }
  .cube:hover .box12{
   transform: rotateY(330deg) translateZ(600px);
    }      

3.源码解析

3.1关键帧

 @keyframes rotate{  
0%{
     transform:rotateX(0deg) translateZ(0) ;
      }
   100%{
    transform:rotateX(1turn) translateZ(1turn);
       }
   }

用于设置间隔段动态效果

3.2 rotateY()和translateZ()

首先我们要了解一个图

请添加图片描述

3.2.1rotateY()

rotateY()就是元素围绕y轴旋转

3.2.2translateZ()

translateZ()和旋转结合在一起,而且translateZ()取值为正,那么这个元素就会朝着自己面向的方向前进

3.2.3transform-style: preserve-3d

使图形具有3D效果

4.思路解析

将包裹十二张图片的容器设置为absolute

十二张图片设置为relative

在Y轴方向上第一张图片不旋转,之后的每张图片Y轴的旋转都增加360/12(deg)

在Z轴上朝着自己面向的方向前进一定的数值px形成3D效果

为每张图片添加:hover事件。translateZ()的数值增大

如果你们觉得还不错的话,

帮博主点个赞

如果能点个关注就更好了

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言不及行yyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值