js轮盘抽奖
js轮盘抽奖

需求:实现中奖是否可控
思路:通过旋转角度来实现轮盘转动,根据角度来确定是否中奖
window.onload = function(){
var oTurn = document.getElementById('turntable');
var oStart = document.getElementById('start');
var timer, timer2 = null;
var deg = 0; //当前旋转度数
var iSpeed = 0; //加速减速变量
var iNum = 1800; //旋转角度(旋转多少圈360*i)
var iZ = 45+60*1; //可中奖的值(15+60*i), 不中奖的值(45+60*i)
var iTotal = iNum + iZ; //总共旋转度数
var bStop = true; //可点击开关
var iTp = 0; //保存下一次旋转需要的总度数
var bFirst = true; //是否第一次点击
oStart.onclick = function(){
start();
};
function start(){
if(bStop){
bStop = false;
timer = setInterval(function(){
//第一次点击,小于总度数的一半时加速,大于一半是减速,速度小于0时,默认为0.5
if(bFirst){
if(deg<=iTotal/2){
iSpeed = iSpeed + 0.1;
}
if(deg>iTotal/2){
iSpeed -= 0.1;
}
if(iSpeed <= 0){
iSpeed = 0.5;
}
}else{
if(deg<=iTp/2){
iSpeed = iSpeed + 0.1;
}
if(deg>iTp/2){
iSpeed -= 0.1;
}
if(iSpeed <= 0){
iSpeed = 0.5;
}
}
deg+=iSpeed; //每次旋转度数=当前度数+ 速度变量(速度快,旋转快,即加速运动;速度慢,减速运动)
//当前度数大于等于总度数是停止
if(deg>=iTotal){
clearInterval(timer);
deg%=360; //设置
iTp = iTotal + deg; //下一次旋转的总度数
iSpeed = 0; //重置
bFirst = false;
bStop = true;
return false;
}else{
$('#turntable').css({'-webkit-transform':'rotate(' + deg + 'deg)'});
}
}, 30);
}
}
};
js轮盘抽奖的更多相关文章
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断
C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...
- 原生js轮盘抽奖实例分析(幸运大转盘抽奖)
效果图: 所需图片素材: 这张图是pointer.png的位置的. turntable-bg.jpg这张是转盘背景图,在背景位置. 这张是turntable.png位置的. 需要这三张图片,如果要实现 ...
- js转盘抽奖
这个是很简易的转盘,只用了html,css,js 通过css产生一个转盘上的指针,用js动态改变css中的transparent改变指针的角度.再添加一个背景图片类似于奖项的转盘 <!DOCTY ...
- js一个抽奖的例子
朋友公司开年会,帮忙写了个抽奖的demo,源码如下,github中有程序: html: <header> lottery demo </header> <div clas ...
- Js 转动抽奖实现
一.样本 地址:http://js.zhuamimi.cn/choujiang/index.htm 源码:https://pan.baidu.com/s/15KhesfcLf1WMOom6PhzCjA ...
- js实现抽奖
抽奖.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- js 简单抽奖实现
大家在很多活动页面上都看到绚丽多彩的抽奖运用,网上也有比较多关于这方面的js和用as.今天我在工作的时候也要做个抽奖的运用.我之前没有写过这类的js,也不会as,就得屁颠屁颠的问度娘啦,虽然找到有js ...
- jquery.rotate.js可选抽奖次数和中奖内容的转盘抽奖demo
需求: 最多可以抽奖5次,而且,每次只会中“2000元理财金”或者“谢谢参与”,其它的不会抽中(哈哈,果然都是套路). 效果如下: 一.页面结构: <div class="g-cont ...
- JS数组抽奖程序教学实例
数组Javascript中非常重要的知识点,为了在课堂上提高学生兴趣,教学举例的选择就比较重要了. 为了提高学生兴趣,特设计一个可输入,可控制结束的,利用JS数组实现的抽奖教学实例.代码如下:
随机推荐
- vs 2010 网站项目和asp.net 应用程序引用webservice
项目需要做对接,对方提供的是一个webservice接口,自己建了个网站项目,然后添加web 引用,一切正常. 当实际编码的时候,发现一些类.方法找不到. 百思不得其解,只得对照对方提供的demo 看 ...
- drawInRect:withAttributes:
- (void)drawRect:(CGRect)frame { NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defa ...
- 怎样在VC里面使用graphics.h绘图
网上很多绘图程序和小游戏程序都是用的 TC,在 VC 下编译时提示错误:fatal error C1083: Cannot open include file: 'graphics.h': No su ...
- C陷阱与缺陷(三)
第三章 语义陷阱 3.1 指针与数组 C语言中只有一维数组,而且数组的大小必须字编译期就作为一个常数确定下来.数组中的元素可以是另外一个数组.任何一个数组下标运算都等同于一个对应的指针运算.int a ...
- 多种EDA软件的鼠标增强工具EDAHelper
最新版本(unicode版本,各种语言环境显示中文)下载地址:http://www.jyxtec.com/edahelper/EDAHelper-2.1.13.7z 繁体版:http://www.jy ...
- Linux部署ASP.NET 5 (vNext)
原文:Linux部署ASP.NET 5 (vNext) ASP.NET 5 (vNext) Linux部署 引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubun ...
- IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★
IT第二十天 上午 面向对象编程思想 1.组装电脑的设计: (1)电脑的组成:显示器+机箱 (2)机箱的组成:电源+主板+硬盘 (3)主板所包含的部件:cpu+内存+PCI接口+usb接口 (4)PC ...
- Maven--几个需要补充的问题(三)
<Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)> 前两篇由于篇幅太长,为了给读者理解方便,这篇 ...
- asp.net mvc 下载文件 txt doc xsl 等等
不废话,直接上代码,就是这么简单 public FileStreamResult StreamFileFromDisk() { // string path = AppDomain.Current ...
- Week11(11月18日)
Part I:检查 =========================== 1.上堂课的练习效果. Part II:案例学习 =========================== MusicStor ...