3D动画案例2

一、介绍

本节内容主要来讲解一下,划入盒子让其垂直与电脑屏幕,开始的状态为躺平的状态,这么说小伙伴可能不理解,那么我们来看下面的图例

二、思路解析

  • 首先使用一个大盒子将四个小盒子包起来,设置盒子为弹性盒子水平排列,开启3d空间
  • 添加第一个盒子,设置他的背景颜色为渐变色,添加图片,让其按照X轴进行旋转,添加盒子阴影。
  • 复制4个盒子,更换图片以及背景颜色。 
  • 鼠标划入让其图片先旋转,再进行位移,如果在原位置进行旋转会导致图片直接穿过盒子展示,所以需要改变图片的旋转基点。

三、HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<link rel="stylesheet" href="./index.css">
</head>
<body>
	<!-- 最大的盒子 -->
	<div class="person_box">
		<!-- 子元素 -->
		<div class="child">
			<!-- png图片 -->
			<img src="./img/5webp.webp" alt="">
		</div>
		<div class="child child2">
			<img src="./img/6.webp" alt="">
		</div>
		<div class="child child3">
			<img src="./img/8.webp" alt="">
		</div>
		<div class="child child4">
			<img src="./img/7.webp" alt="">
		</div>
	</div>
</body>
</html>

 四、CSS代码

.person_box{
/*	设置大盒子的宽高*/
	width: 100%;
    height: 510px;
/*    距离上面元素的距离,可忽略*/
    margin-top: 255px;
/*   添加左右两边内边距,并且设置为怪异盒模型,可不加 */
    padding:0 300px;
    box-sizing:border-box;
/*    开启3D空间*/
    transform-style:preserve-3d ;
/*    增加景深*/
    perspective: 1000px;
}
.child{
/*	使用浮动让其在一行排列*/
	float: left;
/*	距离左边的距离*/
	margin-left: 20px;
/*	设置宽高*/
	width: 300px;
	height: 100%;
/*	设置背景图*/
	background: linear-gradient(to right bottom,hotpink,orange,red);
/*	设置盒子为flex布局,在子级中使用margin:auto让子级垂直水平居中*/
	display: flex;
/*	开启3D空间*/
	transform-style:preserve-3d;
/*	设置盒子阴影*/
	box-shadow: 0 10px 30px #333;
/*	让其对于x轴及进行旋转,位移,躺平*/
	transform:translateY(-100px) rotateX(60deg);	
}
/*更改其他子级的背景颜色*/
.child2{
	background: linear-gradient(to bottom right, rgb(45, 196, 255), rgb(255, 16, 255));
}
.child3{
	background: linear-gradient(to bottom right, rgb(131, 255, 16), rgb(255, 217, 0));
}
.child4{
	background: linear-gradient(to bottom right, rgb(0, 255, 234), rgb(0, 49, 211));
}
/*设置父级盒子为flex布局,在子级中使用margin:auto让子级垂直水平居中*/
.child>img{
	margin: auto;
/*	添加过渡属性,让其更加丝滑*/
	transition: all .3s;
}
/*鼠标划入,让其中的img图片抬起来,设置先旋转后平移,更改图片旋转的基点*/
.child:hover>img{
	transform: rotateX(-60deg) translateZ(300px);
}

运行结果

五、结束语

本节内容就到此结束了,希望本篇博客对小伙伴们有所帮助,总结就是我们通过使用css3中的3D,以及旋转,位移等属性,来完成这个3D小案例,我们下一节再见。see you~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

辛-夷

你的鼓励就是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值