基于javascript实现九宫格大转盘效果


Posted in Javascript onMay 28, 2020

本文实例为大家分享了js实现幸运抽奖九宫格大转盘效果,供大家参考,具体内容如下

基于javascript实现九宫格大转盘效果

实现代码:

<!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>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
将string解析为json的几种方式小结
Nov 11 Javascript
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
jQuery中parents()和parent()的区别分析
Oct 28 Javascript
关于Function中的bind()示例详解
Dec 02 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
初探JavaScript 面向对象(推荐)
Sep 03 Javascript
vue中父子组件注意事项,传值及slot应用技巧
May 09 Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
Vue实现搜索结果高亮显示关键字
May 28 Javascript
JS实现导航栏楼层特效
Jan 01 Javascript
全屏js头像上传插件源码高清版
Mar 29 #Javascript
js闭包引起的事件注册问题介绍
Mar 29 #Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
Mar 29 #Javascript
js滚动条平滑移动示例代码
Mar 29 #Javascript
JavaScript头像上传插件源码分享
Mar 29 #Javascript
js解决movebox移动问题
Mar 29 #Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 #Javascript
You might like
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
Laravel 5 学习笔记
2015/03/06 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
微信小程序python用户认证的实现
2019/07/29 Python
对Django中内置的User模型实例详解
2019/08/16 Python
python基于opencv检测程序运行效率
2019/12/28 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
高考考python编程是真的吗
2020/07/20 Python
python logging模块的使用
2020/09/07 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
应届毕业生自荐书
2014/06/18 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
公司员工奖惩制度
2015/08/04 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server