css代码写3D盒子动画

完整代码见下:

html:

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>HTML+CSS 3D盒子</title>
		<link rel="stylesheet" href="css/index.css" />
	</head>
	<body>
		<section>
			<div><img src="images/1.jpg" alt="" /></div>
			<div><img src="images/2.jpg" alt="" /></div>
			<div><img src="images/3.jpg" alt="" /></div>
			<div><img src="images/4.jpg" alt="" /></div>
			<div><img src="images/5.jpg" alt="" /></div>
			<div><img src="images/6.jpg" alt="" /></div>
			<div><img src="images/1.jpg" alt="" /></div>
			<div><img src="images/2.jpg" alt="" /></div>
			<div><img src="images/3.jpg" alt="" /></div>
			<div><img src="images/4.jpg" alt="" /></div>
			<div><img src="images/5.jpg" alt="" /></div>
			<div><img src="images/6.jpg" alt="" /></div>
		</section>
	</body>
</html>

 css:

* {
	/* 初始化 取消页面的内外边距 */
	padding: 0;
	margin: 0;
}
body {
	/* 弹性布局 让页面元素垂直+水平居中 */
	display: flex;
	justify-content: center;
	align-items: center;
	/* 让页面始终占浏览器总高 */
	height: 100vh;
	background-color: #000;
	/* 视距 增加盒子的立体感 */
	perspective: 1000px;
}
section {
	/* 相对定位 */
	position: relative;
	width: 150px;
	height: 150px;
	/* 让子元素保留其3D位置 */
	transform-style: preserve-3d;
	/* 动画 名称 时长 linear 是匀速运动 infinite是无限次播放 */
	animation: rotate 5s linear infinite;
}
section div {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #fff;
	transition: all 1s;
}
section div img {
	width: 100%;
	height: 100%;
}
section div:nth-child(1) {
	transform: translateZ(75px);
}
section:hover div:nth-child(1) {
	transform: translateZ(200px);
}
section div:nth-child(2) {
	transform: rotateX(-180deg) translateZ(75px);
}
section:hover div:nth-child(2) {
	transform: rotateX(-180deg) translateZ(200px);
}
section div:nth-child(3) {
	transform: rotateX(90deg) translateZ(75px);
}
section:hover div:nth-child(3) {
	transform: rotateX(90deg) translateZ(200px);
}
section div:nth-child(4) {
	transform: rotateX(-90deg) translateZ(75px);
}
section:hover div:nth-child(4) {
	transform: rotateX(-90deg) translateZ(200px);
}
section div:nth-child(5) {
	transform: rotateY(90deg) translateZ(75px);
}
section:hover div:nth-child(5) {
	transform: rotateY(90deg) translateZ(200px);
}
section div:nth-child(6) {
	transform: rotateY(-90deg) translateZ(75px);
}
section:hover div:nth-child(6) {
	transform: rotateY(-90deg) translateZ(200px);
}
section div:nth-child(7) {
	transform: translateZ(75px);
}
section div:nth-child(8) {
	transform: rotateX(-180deg) translateZ(75px);
}
section div:nth-child(9) {
	transform: rotateX(90deg) translateZ(75px);
}
section div:nth-child(10) {
	transform: rotateX(-90deg) translateZ(75px);
}
section div:nth-child(11) {
	transform: rotateY(90deg) translateZ(75px);
}
section div:nth-child(12) {
	transform: rotateY(-90deg) translateZ(75px);
}

@keyframes rotate {
	0% {
		transform: rotateY(0) rotateX(0);
	}
	100% {
		transform: rotateY(360deg) rotateX(360deg);
	}
}

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值