> 웹 프론트엔드 > JS 튜토리얼 > javascript_javascript 기술을 기반으로 9각형 그리드 턴테이블 효과 구현

javascript_javascript 기술을 기반으로 9각형 그리드 턴테이블 효과 구현

WBOY
풀어 주다: 2016-05-16 15:07:40
원래의
1593명이 탐색했습니다.

이 글의 예시는 참고용으로 럭키 드로우 9각형 그리드 휠 효과의 js 구현을 공유합니다.

구현 코드:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>九宫格大转盘</title>
 <style type="text/css">
/*reset*/
*{ padding:0; margin:0}
body{ height: 100%; width: 100%; font-size:12px; color:#333;}
ul{ list-style:none;}
/*demo*/
#lottery{width:400px;height:400px;margin:20px auto 0; position:relative;}
#lottery div{width:100px;height:100px;text-align:centerfont-size:24px;color:#333; float:left;}
#lottery .cent{ background:#C33;}
#lottery .lottery-unit-0{ background:#CC6;}
#lottery .lottery-unit-1{ background:#F99;}
#lottery .lottery-unit-2{ background:#CC6;}
#lottery .lottery-unit-3{ background:#F99;}
#lottery .lottery-unit-4{ background:#CC6;}
#lottery .lottery-unit-5{ background:#F99;}
#lottery .lottery-unit-6{ background:#CC6;}
#lottery .lottery-unit-7{ background:#F99;}
#lottery .lottery-unit-8{ background:#CC6;}
#lottery .lottery-unit-9{ background:#F99;}
#lottery .lottery-unit-10{ background:#CC6;}
#lottery .lottery-unit-11{ background:#F99;}

#lottery div.select{background:#F0F;}

#lottery .start{ position:absolute; left:100px; top:100px; height:200px; width:200px;background:#C33; font-size:30px; text-align:center; cursor:pointer; line-height:200px; color:#fff;}
</style>
</style>
</head>
<body> 
 <!--九宫格大转盘-->
 <div id="lottery">
  
  <div class="lottery-unit lottery-unit-0">1</div>
  <div class="lottery-unit lottery-unit-1">2</div>
  <div class="lottery-unit lottery-unit-2">3</div>
  <div class="lottery-unit lottery-unit-3">4</div>
  
  <div class="lottery-unit lottery-unit-11">12</div>   
  <div class="cent"></div>
  <div class="cent"></div>   
  <div class="lottery-unit lottery-unit-4">5</div>
  
  <div class="lottery-unit lottery-unit-10">11</div>   
  <div class="cent"></div>
  <div class="cent"></div>   
  <div class="lottery-unit lottery-unit-5">6</div>
 
  <div class="lottery-unit lottery-unit-9">10</div>
  <div class="lottery-unit lottery-unit-8">9</div>
  <div class="lottery-unit lottery-unit-7">8</div>
  <div class="lottery-unit lottery-unit-6">7</div>

  <div class="start" id="start">抽奖</div>
 </div>
</body>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
 //九宫格大转盘
 var count=3;//可用次数 
 var i=null;//初始位置,
 var speed=80;//转动速度
 var ok=null;//产生0-11的整数,标记中奖位置
 var count=null;//总变化次数
 var nowcount=null;//当前的变化位置
 var n=5;//圈数
 var paly=false;
 var xq=0;
 function dong(){//利用递归模拟setinterval的实现 
 if(nowcount>count){
 setTimeout(function(){
 paly=false;
 alert("恭喜你,中了"+eval(ok)+"等奖");
 },500);
 }else{ 
 nowcount+=1;
 if(i>10){ 
 xq+=1; 
 if(xq==n-1){
  speed=300;
 }; 
 $(".lottery-unit").removeClass("select");
 $(".lottery-unit-11").addClass("select");
 i=0;
 }else{
 $(".lottery-unit").removeClass("select");
 $(".lottery-unit-"+i).addClass("select");
 i+=1;
 };
 setTimeout(dong,speed); 
 }; 
 
 }; 
 $(".start").click(function(){
 if(!paly){
 if(count==0){
 alert("已经没有机会,下次再来!");
 }else{
 ok=Math.floor((Math.random()*12));//产生0-11的整数,标记中奖位置
 count=n*12+ok;//总变化次数
 nowcount=0;//当前的变化位置
 i=0;//初始位置,
 paly=true;
 count-=1;
 dong();
 };
 
 }else{
 
 };
 
 }); 
});
</script>
</html>
로그인 후 복사

이상 내용이 이 글의 전체 내용입니다. 자바스크립트 프로그래밍을 배우시는 모든 분들께 도움이 되었으면 좋겠습니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿