JS旋转实现转盘抽奖效果_第1页
JS旋转实现转盘抽奖效果_第2页
JS旋转实现转盘抽奖效果_第3页
JS旋转实现转盘抽奖效果_第4页
JS旋转实现转盘抽奖效果_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第JS旋转实现转盘抽奖效果本文实例为大家分享了JS旋转实现转盘抽奖效果的具体代码,供大家参考,具体内容如下

闲来没事,做了一个模拟转盘抽奖的HTMLJS的效果:

可以在设置的时候,选择几个区域,并且可以填写指针将要停止的区域

比如,我选择了区域2,结果就是这样

具体可以见下面的源码:(注意,这里JQ文档没有贴出来,需要自行引入)

HTML文件:

!DOCTYPEhtml

html

head

metacharset="utf-8"/

title/title

style

#RotationDiv{

/*初始化界面,让指针朝上*/

transform:rotate(180deg);

-ms-transform:rotate(180deg);

-moz-transform:rotate(180deg);

-webkit-transform:rotate(180deg);

-o-transform:rotate(180deg);

width:60px;

height:85px;

/*边框是用来看旋转的地方的*/

/*border:1pxsolidblack;*/

}

/style

!--引入jq1.8--

scriptsrc="js/jquery-1.8.3.js"type="text/javascript"charset="utf-8"/script

!--引入旋转的js--

scriptsrc="js/rotation-index.js"type="text/javascript"charset="utf-8"/script

scripttype="text/javascript"

functionrotationDiv(num){

RotationIndex("RotationDiv",8,num,4,5)

}

/script

/head

body

div

tablealign="center"

tr

tdinputtype="button"value="选择区域:1"οnclick="rotationDiv(1)"/

inputtype="button"value="选择区域:2"οnclick="rotationDiv(2)"/

inputtype="button"value="选择区域:3"οnclick="rotationDiv(3)"/

inputtype="button"value="选择区域:4"οnclick="rotationDiv(4)"/

inputtype="button"value="选择区域:5"οnclick="rotationDiv(5)"/

inputtype="button"value="选择区域:6"οnclick="rotationDiv(6)"/

inputtype="button"value="选择区域:7"οnclick="rotationDiv(7)"/

inputtype="button"value="选择区域:8"οnclick="rotationDiv(8)"//td

/tr

/table

/div

tablealign="center"

tr

tdcolspan="3"/td

/tr

tr

td

/td

td

divid="RotationDiv"imgsrc="img/timg.png"width="100%"//div

/td

td/td

/tr

tr

tdcolspan="3"/td

/tr

/table

/body

/html

自己写的旋转的JS文件:

/**

*@param{Object}indexID

想要旋转的控件的id

*@param{Object}areaNum

区域的块数

*@param{Object}wantToStop

想要停止的位置(块号)

*@param{Object}defaultTime

刚开始匀速旋转的时间

*@param{Object}chageTime

最后减速旋转的时间

functionRotationIndex(indexID,areaNum,wantToStop,defaultTime,chageTime){

varstopAreaNum=0;//停在区域的名字数

varareaArr=newArray(areaNum);

varangle=1;//每次旋转角度

//

varrandomTime=Math.random()*1500;//随机时间

varnowTime=0;//当前时间,随机起点,让停止来的更加真实

vardisTime=15;//时间差值,每15毫秒改变一次,基本上类似于60Hz刷新频率

vardisangle=13;//角度差值

varangle360=0;//用于记录角度数,360°范围的

varUP=(1-((12/chageTime)*defaultTime));//定义一个函数uniformizingparameter

varIPFP=12*defaultTime+(12/chageTime)*defaultTime*defaultTime;//定义一个反比例函数的参数Inverseproportionalfunctionparameters

varmyIntervalInRotationIndex=window.setInterval(function(){

nowTime+=disTime;

//当时间小于默认时间时候

if((nowTime/1000)=defaultTime){

//匀速旋转

}elseif((nowTime/1000)defaultTime(nowTime/1000)(defaultTime+chageTime)){

//当时间大于默认时间,开始减速旋转

disangle=UP+(IPFP/(nowTime/1000));

/**

*函数式为:

*UP+IPFP/t=h

*其中t为时间,h为角度

*

*/

}else{

angle360=angle%360;

stopAreaNum=angle360/(360/areaNum);

if(stopAreaNum=(wantToStop-1.5)){

disangle=0.3;

}elseif(stopAreaNum=(wantToStop-1)){

disangle=0.5;

}else{

disangle=0.8;

}

if(stopAreaNum=(wantToStop-0.8)stopAreaNum=wantToStop){

window.clearInterval(myIntervalInRotationIndex);

}

}

angle360=angle%360;

angle+=disangle;

$("#"+indexID).attr("style","transform:rotate("+ang

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论