CSS3实现3D立方体旋转效果

使用CSS3实现3D立方体选择效果,效果如下:


代码:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
	#divs{
		-webkit-perspective:500;
		-webkit-perspective-origin:50% 50%;
		overflow:hidden;
		margin-top:100px;
	}

	#group{
		height:250px;
		width:250px;
		position:relative;
		margin:auto;
		-webkit-transform-style:preserve-3d;
		-webkit-transition:-webkit-transform 1s linear;
		-webkit-transform:rotateX(45deg) rotateY(45deg) rotateZ(45deg);
	}


	.d{
		height:100px;
		width:100px;
		position:absolute;
		background:#f0f;
		color:#FFFFFF;
		font-weight:bold;
		text-align:center;
		line-height:100px;
		font-size:100px;
		top:0px;
		bottom:0px;
		left:0px;
		right:0px;
		margin:auto;
	}


	#d2{
		-webkit-transform-origin:left;
		-webkit-transform:rotateY(90deg);
		background:#00f;
	}

	#d3{
		-webkit-transform-origin:bottom;
		-webkit-transform:rotateX(90deg);
		background:#f00;
	}

	#d4{
		-webkit-transform-origin:right;
		-webkit-transform:rotateY(-90deg);
		background:#0ff;
	}

	#d5{
		-webkit-transform-origin:top;
		-webkit-transform:rotateX(-90deg);
		background:#ff0;
	}

	#d6{
		-webkit-transform:translateZ(-100px);
		background:#0e0;
	}

	#handler{	
		margin:auto;
		font-weight:bold;
		width:700px;
	}

	.rotate{
		width:100%;
	}
	
  </style>
  <script type="text/javascript">
	function onRotate(){
		var x=document.getElementById("rangX").value;
		var y=document.getElementById("rangY").value;
		var z=document.getElementById("rangZ").value;

		document.getElementById("group").style.webkitTransform="rotateX("+x+"deg) rotateY("+y+"deg) rotateZ("+z+"deg)";

		document.getElementById("handleX").innerText=x;
		document.getElementById("handleY").innerText=y;
		document.getElementById("handleZ").innerText=z;
	}
  </script>
 </head>
 <body>
  <div id="divs">
	<div id="group">
		<div class="d" id="d1">1</div>
		<div class="d" id="d2">2</div>
		<div class="d" id="d3">3</div>
		<div class="d" id="d4">4</div>
		<div class="d" id="d5">5</div>
		<div class="d" id="d6">6</div>
	</div>
  </div>

  <div id="handler">
	<p>rotateX:<span id="handleX">0</span>deg</p>
	<input type="range" min="-360" max="360" value="0" id="rangX" class="rotate" οnchange="onRotate()"/>
	<p>rotateY:<span id="handleY">0</span>deg</p>
	<input type="range" min="-360" max="360" value="0" id="rangY" class="rotate" οnchange="onRotate()"/>
	<p>rotateZ:<span id="handleZ">0</span>deg</p>
	<input type="range" min="-360" max="360" value="0" id="rangZ" class="rotate" οnchange="onRotate()"/>
  </div>
 </body>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小老虎Love

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

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

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

打赏作者

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

抵扣说明:

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

余额充值