运用css3 实现骰子3d旋转效果

css部分代码:

 .dice_box {
	width: 400px;
	height: 400px;
	position:relative;
	margin:0 auto;
	perspective: 900px;
	-moz-perspective: 900px;
	-webkit-perspective: 900px;
	perspective-origin: 50%, 50%;
	-moz-perspective-origin: 50%, 50%;
	-webkit-perspective-origin: 50%, 50%;
}

#dice1 {
	position: relative;
	-moz-transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	top:-90px;
	left:100px;
	width: 150px;
	height: 150px;
}

#dice2 {
	position: relative;
	-moz-transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	width: 150px;
 	left: 120px;
	top: -150px; 
	height: 150px;
}

#dice3 {
	position: relative;
 	top: -320px;
	left: 20px; 
	-moz-transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	width: 150px;
	height: 150px;
}

#dice3 ul li,#dice1 ul li,#dice2 ul li {
	position: absolute;
	list-style: none;
	width: 50px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	font-size: 50px;
}

#dice1 ul li:nth-of-type(1),#dice2 ul li:nth-of-type(1),#dice3 ul li:nth-of-type(1) {
	top: 0px;
	left: 50px;
    -moz-transform-origin: bottom;
	-moz-transform: rotateX(-90deg);
	-webkit-transform-origin: bottom;
	-webkit-transform: rotateX(-90deg);
}
#dice1 ul li:nth-of-type(2),#dice2 ul li:nth-of-type(2),#dice3 ul li:nth-of-type(2) {
	top: 50px;
	left: 50px;
}

#dice1 ul li:nth-of-type(3),#dice2 ul li:nth-of-type(3),#dice3 ul li:nth-of-type(3) {
	top: 50px;
	left: 100px;
	-moz-transform-origin: left;
	-moz-transform: rotateY(-90deg);
	-webkit-transform-origin: left;
	-webkit-transform: rotateY(-90deg);
}

#dice1 ul li:nth-of-type(4),#dice2 ul li:nth-of-type(4),#dice3 ul li:nth-of-type(4) {
	top: 50px;
	left: 0px;
	-moz-transform-origin: right;
	-moz-transform: rotateY(90deg);
	-webkit-transform-origin: right;
	-webkit-transform: rotateY(90deg);
}

#dice1 ul li:nth-of-type(5),#dice2 ul li:nth-of-type(5),#dice3 ul li:nth-of-type(5) {
	top: 100px;
	left: 50px;
 	-moz-transform-origin: top;
	-moz-transform: rotateX(90deg); 
	-webkit-transform-origin: top;
	-webkit-transform: rotateX(90deg);
}

#dice1 ul li:nth-of-type(6),#dice2 ul li:nth-of-type(6),#dice3 ul li:nth-of-type(6) {
	top: 50px;
	left: 50px;
	-moz-transform: translateZ(50px);
	-webkit-transform: translateZ(50px);
}

js部分代码:

function randomZeroOne(){
	var n=Math.random();
	if(n<0.5){
		return 0;
	}else{
		return 1;
	}
}
function calDice(a,b,c){
		  var all=$("#k3_hz div.bet_k3_hz div");
		   all.attr("class","k3_off");
		   $("div.dice_box").show();
		   $("#shadeDiv").show();
		   var i=0;
		   var k=0;
		   var n=0;
		   var index=1;
		   var r= setInterval(function(){
			   var x=randomZeroOne();
			   var y=randomZeroOne();
			   var z=randomZeroOne();
				  if(n>1500){
					    n=0;
						k=0;
						i=0;
						var box= document.getElementById("dice1");
		        		box.style.transform="rotate3d("+x+","+y+","+z+","+n+"deg)";
					    var box1= document.getElementById("dice2");
					    box1.style.transform="rotate3d("+x+","+y+","+z+","+k+"deg)"; 
					    var box2= document.getElementById("dice3");
					    box2.style.transform="rotate3d("+x+","+y+","+z+","+i+"deg)";  
					    $(box).css({"-webkit-transform":"rotate3d("+x+","+y+","+z+","+n+"deg)"});
					    $(box1).css({"-webkit-transform":"rotate3d("+x+","+y+","+z+","+k+"deg)"});
					    $(box2).css({"-webkit-transform":"rotate3d("+x+","+y+","+z+","+i+"deg)"});
					    $("#dice1 li img").last().attr("src","/capricorn/resources/images/touch/"+a+".png");
						$("#dice2 li img").last().attr("src","/capricorn/resources/images/touch/"+b+".png");
						$("#dice3 li img").last().attr("src","/capricorn/resources/images/touch/"+c+".png");
						clearInterval(r);
					var m=setInterval(function(){
						$("div.dice_box").hide();
						$("#shadeDiv").hide();
						code=a+b+c;
						 var all=$("#k3_hz div.bet_k3_hz div");
						   all.attr("class","k3_off");
						$(all[code-4]).attr("class","k3_on");
						clearInterval(m);
					},1000);
					return;
			  }
			  index=index+0.01;
			  i+=(120/index);
			  k+=(100/index);
			  n+=(60/index);
			  var box= document.getElementById("dice1");
			  $(box).css({"-webkit-transform":"rotate3d("+x+","+y+","+z+","+i+"deg)"});
			  box.style.transform="rotate3d("+x+","+y+","+z+","+i+"deg)"; 
			  var box1= document.getElementById("dice2");
			  $(box1).css({"-webkit-transform":"rotate3d(1,0,1,"+i+"deg)"});
			  box1.style.transform="rotate3d("+x+","+y+","+z+","+k+"deg)"; 
			  var box2= document.getElementById("dice3");
			  $(box2).css({"-webkit-transform":"rotate3d(0,1,1,"+i+"deg)"});
			  box2.style.transform="rotate3d("+x+","+y+","+z+","+n+"deg)"; 
		  },50);
} 
html部分代码:

 
  <div class="dice_box" style="display:none;z-index:110;">
		<div id="dice1">
			<ul>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/1.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/2.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/3.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/4.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/5.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/6.png"></li>
			</ul>
		</div>
		<div id="dice2">
			<ul>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/1.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/2.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/3.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/4.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/5.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/6.png"></li>
			</ul>
		</div>
		<div id="dice3">
			<ul>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/1.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/2.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/3.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/4.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/5.png"></li>
				<li><img src="<%=request.getAttribute("basePath")%>/resources/images/touch/6.png"></li>
			</ul>
		</div>
	</div>
这里引入了jquery ,支持火狐和谷歌,大家可以看下效果很简单,做不出网易那么牛的样子,如果有大牛希望指点一二。

展开阅读全文

没有更多推荐了,返回首页