欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

css3制作3D立体模型

程序员文章站 2022-03-25 16:48:00
...

 代码跟注释都在里面了!想知道是什么效果不妨自己试试!

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			
			@-webkit-keyframes domove{
				0%{
					-webkit-transform: rotate(0deg) translate(0px);
				}
				25%{
					-webkit-transform: rotateX(90deg) rotateY(-90deg) translateX(50px) translateY(-50px);
				}
				50%{
					-webkit-transform: rotateX(-180deg) rotateY(180deg) translateX(0px) translateY(0px);
				}
				75%{
					-webkit-transform: rotateX(-270deg) rotateY(-270deg) translateX(-50px) translateY(50px);
				}
				100%{
					-webkit-transform: rotate(-360deg) translate(0px);
				}
			}
			.warp{
				width: 800px;
				height: 500px;
				border: 1px solid #000000;
				margin: 200px auto;
				-webkit-perspective-origin: top right;/*景深基点,右上视角*/
				-webkit-perspective: 600px;/*景深600px*/
			}
			.warp .box{
				width: 100px;
				line-height: 100px;
				margin: 200px auto;
				position: relative;
				-webkit-transform-style:preserve-3d ;/* 搭建一个3D效果的环境*/
				-webkit-animation: 3s domove infinite linear;/*无限循环且速度匀速*/
			}
			
			.warp .box div{
				width: 100px;
				height: 100px;
				position: absolute;
				background: blue;
				text-align: center;
			}
			/*用绝对定位为每个盒子定位一个正六边体的平面图*/
			/*然后根据需求来将他们折叠成正方体*/
			.warp .box div:nth-child(1){
				top: -100px;
				left: 0px;
				background: red;
				-webkit-transform-origin: bottom;/*沿这个盒子的底边旋转,以下面同理*/
				-webkit-transform: rotateX(-90deg);/*X轴旋转-90度,以下面同理*/
			}
			.warp .box div:nth-child(2){
				top: 100px;
				left: 0px;
				background: green;
				-webkit-transform-origin: top;
				-webkit-transform: rotateX(90deg);
			}
			.warp .box div:nth-child(3){
				top: 0px;
				left: 0px;
				background: yellow;
				-webkit-transform: translateZ(100px) rotateZ(-180deg);/*Z轴平移了100px,沿Z轴旋转了-180度*/
			}
			.warp .box div:nth-child(4){
				top: -0px;
				left: -100px;
				background: orange;
				-webkit-transform-origin: right;
				-webkit-transform: rotateY(90deg);
			}
			.warp .box div:nth-child(5){
				top: 0px;
				right: -100px;
				background: darkkhaki;
				-webkit-transform-origin: left;
				-webkit-transform: rotateY(-90deg);
				
			}
			.warp .box div:nth-child(6){
				top: 0px;
				left: 0px;
				background: rgba(255,255,090,0.5);
			}
			
		</style>
	</head>
	<body>
		<div class="warp">
			<div class="box">
				<div>1</div>
				<div>2</div>
				<div>3</div>
				<div>4</div>
				<div>5</div>
				<div>6</div>
			</div>
		</div>
	</body>
</html>