JS实现骰子3D旋转效果

本文实例为大家分享了JS实现骰子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 ,支持火狐和谷歌,大家可以看下效果很简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容