亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JS數字抽獎游戲實現方法

2024-05-06 16:19:15
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JS數字抽獎游戲實現方法,可實現按下回車鍵出現隨機數字切換的效果,涉及時間與隨機數的相關操作技巧,非常具有實用價值,需要的朋友可以參考下

本文實例講述了JS數字抽獎游戲實現方法。分享給大家供大家參考。具體實現方法如下:

 

 
  1. <!doctype html> 
  2. <html> 
  3. <head> 
  4. <meta charset="utf-8"
  5. <title>新年網頁抽獎程序</title> 
  6. <style type="text/css"
  7. * {margin:0; padding:0;} 
  8. ul,li {list-style-type:none;} 
  9. body {overflow:hidden;} 
  10. #back {width:100%; height:100%; 
  11. background:#f5f5f5; position:absolute; z-index:1; 
  12. #box {width:360px; height:100px; 
  13. position:absolute; z-index:3; top:50%; left:50%; 
  14. margin-top:-50px; margin-left:-180px; text-align:center; 
  15. #box1,#box2,#box3 {width:100px; height:100px; 
  16. line-height:100px; 
  17. float:left; background:#321c24;  
  18. border:10px #321c24 solid; 
  19. border-radius:50%; position:relative; overflow:hidden; 
  20. #box1 ul,#box2 ul,#box3 ul {color:#fff; font-size:68px;  
  21. font-family:"Arial Black"; text-align:center; 
  22. width:100px; height:100px; line-height:100px; 
  23. position:absolute; top:0; left:0; 
  24. #box1 ul li,#box2 ul li,#box3 ul li { 
  25. width:100px; height:100px; 
  26. background:red; border-radius:50%; 
  27. </style> 
  28. <script type="text/javascript"
  29. var AIR = { 
  30. $: function (id) 
  31. return typeof id === "string" ? document.getElementById(id) : id; 
  32. },  
  33. $: function (elem, oParent) 
  34. return (oParent || document).getElementsByTagName(elem); 
  35. }, 
  36. addEvent: function (oElement, sEvent, fnHandler)  
  37. oElement.addEventListener ? oElement.addEventListener(sEvent, fnHandler, false) : oElement.attachEvent("on" + sEvent, fnHandler)  
  38. }, 
  39. removeEvent: function (oElement, sEvent, fnHandler)  
  40. oElement.removeEventListener ? oElement.removeEventListener(sEvent, fnHandler, false) : oElement.detachEvent("on" + sEvent, fnHandler) 
  41. },  
  42. getElementClient: function (){ 
  43. var arr = []; 
  44. if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth){ 
  45. arr.push(document.documentElement.clientWidth); 
  46. arr.push(document.documentElement.clientHeight); 
  47. return arr; 
  48. }, 
  49. getStyle: function (obj, attr) 
  50. return parseFloat(obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr]) 
  51. }, 
  52. startMove: function (obj, pos, onEnd) 
  53. clearInterval(obj.timer); 
  54. var _this = this
  55. obj.timer = setInterval(function () 
  56. _this.doMove(obj, pos, onEnd) 
  57. }, 30)  
  58. }, 
  59. doMove: function (obj, pos, onEnd) 
  60. var iCurL = this.getStyle(obj, "left"); 
  61. var iCurT = this.getStyle(obj, "top"); 
  62. var iSpeedL = (pos.left - iCurL) / 5; 
  63. var iSpeedT = (pos.top - iCurT) / 5; 
  64. iSpeedL = iSpeedL > 0 ? Math.ceil(iSpeedL) : Math.floor(iSpeedL); 
  65. iSpeedT = iSpeedT > 0 ? Math.ceil(iSpeedT) : Math.floor(iSpeedT); 
  66. if (pos.left == iCurL && pos.top == iCurT) 
  67. clearInterval(obj.timer); 
  68. onEnd && onEnd() 
  69. else 
  70. obj.style.left = iCurL + iSpeedL + "px"
  71. obj.style.top = iCurT + iSpeedT + "px";  
  72. function Draw (obj, num) 
  73. this.obj = obj; 
  74. this.num = num; 
  75. this.data = []; 
  76. this.result = []; 
  77. this.show = 0; 
  78. this.btn = true
  79. this.timer = true
  80. this.h = 0; 
  81. this.uh = 0; 
  82. this.initialize();  
  83. Draw.prototype = { 
  84. initialize: function () 
  85. this.createArr (); 
  86. this.createElement (); 
  87. this.closeEvent (); 
  88. this.startDraw ();  
  89. }, 
  90. createElement: function () 
  91. for(var j=0; j<this.obj.length; j++){  
  92. var ul = document.createElement("ul"); 
  93. for(var i=0; i<10; i++){ 
  94. var li = document.createElement("li"); 
  95. li.innerHTML = i; 
  96. ul.appendChild(li)  
  97. }  
  98. this.obj[j].appendChild(ul); 
  99. this.obj[j].btn = true
  100. AIR.$("ul",this.obj[j])[0].innerHTML += AIR.$("ul",this.obj[j])[0].innerHTML;  
  101. }  
  102. var UL = AIR.$("ul",this.obj[0])[0]; 
  103. this.h = AIR.getStyle(AIR.$("li",UL)[0],"height"); 
  104. this.uh = AIR.$("li",UL).length * this.h 
  105. }, 
  106. randomSort: function (a, b) { 
  107. return Math.random()>.5 ? -1 : 1; 
  108. }, 
  109. createArr: function () 
  110. for(var i=0; i<this.num+1; i++){ 
  111. this.data.push(i);  
  112. }  
  113. this.data.sort(this.randomSort);  
  114. }, 
  115. closeEvent: function () 
  116. document.onmousedown=document.onmousemove=document.oncontextmenu=function() 
  117. return false;  
  118. }  
  119. }, 
  120. startDraw: function () 
  121. var _this = this
  122. document.onkeyup = function ( ev ) 
  123. var ev = ev || window.event; 
  124. if(ev.keyCode == 13 || ev.keyCode == 32){ 
  125. if(_this.btn && _this.timer){ 
  126. if(_this.obj[_this.obj.length-1].btn){ 
  127. _this.Play (); 
  128. _this.btn = !_this.btn; 
  129. _this.timer = !_this.timer;  
  130. }  
  131. }else
  132. if(_this.obj[_this.obj.length-1].btn){ 
  133. _this.Stop (); 
  134. _this.btn = !_this.btn; 
  135. _this.timer = !_this.timer;  
  136. return false
  137. }else
  138. return false;  
  139. }, 
  140. Play: function () 
  141. if(this.timer && this.btn){ 
  142. var t = 0; 
  143. for(var i=0; i<this.obj.length; i++){ 
  144. this.obj[i].btn = false
  145. this.playTimer (this.obj[i],t);  
  146. t += 1500; 
  147. }else
  148. return false;  
  149. }, 
  150. playTimer: function (obj,t) 
  151. var _this = this
  152. setTimeout(function(){ 
  153. _this.Move (obj); 
  154. },t)  
  155. }, 
  156. Del: function (a) 
  157. for(var i=0; i<this.data.length; i++){ 
  158. if(a == this.data[i]){ 
  159. this.data.splice(i,1);  
  160. }  
  161. }  
  162. }, 
  163. Stop: function () 
  164. if(!this.timer && !this.btn){ 
  165. var n = this.num + 1; 
  166. var r = this.data[Math.floor(Math.random() * (0-n) + n)]; 
  167. this.show = r; 
  168. this.Del (r); 
  169. r = r.toString().split(""); 
  170. var c = this.obj.length - r.length; 
  171. if(r.length < this.obj.length){ 
  172. for(var i=0; i<c; i++){ 
  173. r.unshift(0)  
  174. }  
  175. this.result = r;  
  176. //document.title = r+" : "+this.data;  
  177. var t = 0; 
  178. for(var i=0; i<this.obj.length; i++){ 
  179. this.obj[i].btn = false
  180. this.obj[i].index = i; 
  181. this.obj[i].num = this.result[this.obj[i].index]; 
  182. this.stopTimer (this.obj[i],t);  
  183. t += 1500; 
  184. }, 
  185. stopTimer: function (obj,t) 
  186. var _this = this
  187. setTimeout(function(){ 
  188. _this.showResult (obj); 
  189. },t) 
  190. }, 
  191. showResult: function (obj) 
  192. {  
  193. var _this = this
  194. this.timer = true
  195. this.btn = true
  196. obj.btn = false
  197. obj.vh = -obj.num * this.h; 
  198. obj.timeOut = setInterval(function(){ 
  199. obj.speed -= 1; 
  200. if(obj.speed == 1){ 
  201. clearInterval(obj.timeOut);  
  202. clearInterval(obj.timer); 
  203. obj.timer = setInterval(function(){ 
  204. if(obj.ul.offsetTop >= obj.vh){ 
  205. clearInterval(obj.timer); 
  206. AIR.startMove(obj.ul,{left:0,top:obj.vh},function(){ 
  207. obj.btn = true;  
  208. var set = true
  209. for(var i=0; i<_this.obj.length; i++){ 
  210. if(!_this.obj[i].btn){ 
  211. set = false;  
  212. if(set){ 
  213. _this.Open(_this.show)  
  214. }); 
  215. obj.ul.style.top = obj.ul.offsetTop + obj.speed +"px";  
  216. },30); 
  217. },100);  
  218. }, 
  219. Open: function (num) 
  220. document.title += " "+ num; 
  221. }, 
  222. Move: function (obj) 
  223. var _this = this
  224. var obj = obj; 
  225. obj.btn = false
  226. obj.timer = null
  227. obj.speed = 1; 
  228. obj.ul = AIR.$("ul",obj)[0]; 
  229. obj.ul.style.height = this.uh +"px"
  230. obj.timer = setInterval(function(){ 
  231. if(obj.ul.offsetTop > 0){ 
  232. obj.ul.style.top = -(_this.uh/2) +"px"
  233. obj.ul.style.top = obj.ul.offsetTop + obj.speed +"px";  
  234. },30); 
  235. obj.timeOut = setInterval(function(){ 
  236. obj.speed += 1; 
  237. if(obj.speed == 30){ 
  238. clearInterval(obj.timeOut); 
  239. obj.btn = true;  
  240. },300)  
  241. var initialize = function () 
  242. new Draw ([AIR.$("box1"),AIR.$("box2"),AIR.$("box3")],100); 
  243. reSize (); 
  244. var reSize = function () 
  245. var v = AIR.getElementClient(); 
  246. AIR.$("img",AIR.$("back"))[0].width = v[0]; 
  247. AIR.$("img",AIR.$("back"))[0].height = v[1];  
  248. AIR.addEvent(window,"load",initialize); 
  249. AIR.addEvent(window,"resize",reSize); 
  250. </script> 
  251. </head> 
  252. <body> 
  253. <div id="box"
  254. <div id="box1"></div> 
  255. <div id="box2"></div> 
  256. <div id="box3"></div> 
  257. <div style="clear:both"></div> 
  258. </div> 
  259. <div id="back"
  260. <img src="images/20153291274950386.jpg" /> 
  261. </div> 
  262. <div id="showback">100</div> 
  263. </body> 
  264. </html> 

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩中文在线| 国产午夜精品视频| 96sao精品视频在线观看| 国产精品亚洲精品| 亚洲free嫩bbb| 欧美亚洲视频在线观看| 成人妇女免费播放久久久| 波霸ol色综合久久| 久久免费观看视频| 欧美乱大交做爰xxxⅹ性3| 国产免费一区二区三区在线能观看| 欧美性少妇18aaaa视频| 欧美成人一区二区三区电影| 欧美激情a在线| xxx欧美精品| 久久综合九色九九| 久99九色视频在线观看| 亚洲人成欧美中文字幕| 亚洲欧洲自拍偷拍| 日韩av日韩在线观看| 欧美成人免费观看| 尤物99国产成人精品视频| 亚洲人成网站色ww在线| 成人欧美一区二区三区黑人| 欧美亚洲另类制服自拍| 精品欧美一区二区三区| 亚洲成人久久久久| 国产精品爽爽爽| 国产精品久久久久久久久久三级| 91av在线精品| 国产日韩中文字幕| 国产69精品99久久久久久宅男| 夜夜嗨av一区二区三区四区| 久久久久久久爱| 8x拔播拔播x8国产精品| 国产a∨精品一区二区三区不卡| 视频一区视频二区国产精品| 亚洲深夜福利在线| 国产精品91久久久久久| 另类色图亚洲色图| 亚洲欧美成人精品| 亚洲欧美成人一区二区在线电影| 精品国产一区久久久| 亚洲男人天堂2024| 中文字幕一区二区三区电影| 欧美插天视频在线播放| 亚洲精品久久视频| 亚洲精品电影久久久| 中文字幕亚洲欧美日韩2019| 最近2019年日本中文免费字幕| 狠狠爱在线视频一区| 亚洲免费一级电影| 久久夜精品va视频免费观看| 亚洲精品久久久久久久久久久久| 国产日韩欧美夫妻视频在线观看| 成人免费网站在线看| 亚洲精品乱码久久久久久按摩观| 国产亚洲欧洲高清一区| 国产99久久精品一区二区永久免费| 韩剧1988在线观看免费完整版| 6080yy精品一区二区三区| 欧美三级xxx| 亚洲欧洲视频在线| 亚洲人午夜精品| 国产精品视频一区二区三区四| 国产成人啪精品视频免费网| 国产精品视频资源| 日韩网站免费观看| 日韩av观看网址| 久久免费高清视频| 国产丝袜高跟一区| 日韩美女在线观看一区| 成人精品在线视频| 亚洲自拍偷拍色片视频| 日韩精品中文字幕在线观看| 91影视免费在线观看| 少妇激情综合网| 亚洲iv一区二区三区| 精品国产91久久久久久| 在线看国产精品| 一本久久综合亚洲鲁鲁| 成人网页在线免费观看| 久久色在线播放| 欧洲s码亚洲m码精品一区| 亚洲黄一区二区| 亚洲成人精品视频| 欧美一级黄色网| 欧美激情精品久久久久久久变态| 亚洲无av在线中文字幕| 亚洲xxxx3d| 91高清在线免费观看| 国产日韩在线免费| 亚洲精品乱码久久久久久按摩观| 韩曰欧美视频免费观看| 国产美女久久精品| 日韩在线视频导航| 国模极品一区二区三区| 亚洲天堂开心观看| www国产精品视频| 国产中文日韩欧美| 亚洲色图综合网| 国产精品视频久久久| 日韩av最新在线观看| 亚洲成人黄色网址| 亚洲综合中文字幕在线观看| 5566成人精品视频免费| 欧美日韩国产一区二区三区| 亚洲精品日韩av| 中文字幕精品久久久久| 岛国av午夜精品| 亚洲精品福利免费在线观看| 国产成人久久久精品一区| 亚洲精品网站在线播放gif| 欧美日韩亚洲一区二| 91中文字幕在线观看| 国产精品黄页免费高清在线观看| 欧美限制级电影在线观看| 韩剧1988在线观看免费完整版| 91精品国产综合久久香蕉922| 日韩最新免费不卡| 欧美国产日韩中文字幕在线| 久久99精品国产99久久6尤物| 亚洲免费一在线| 欧美在线视频一区二区| 亚洲自拍小视频| 亚洲男人av在线| 欧美成人免费全部观看天天性色| 97国产精品视频人人做人人爱| 欧美日韩国产精品一区| 91av在线看| 亚洲视频777| 欧美裸体视频网站| 国产精品99久久久久久www| 国产精品电影网站| 欧美中文字幕在线播放| 久久久久国产一区二区三区| 欧美黑人巨大xxx极品| 日韩欧美中文免费| 欧美激情网站在线观看| 国产第一区电影| 日本精品久久中文字幕佐佐木| 国产91在线高潮白浆在线观看| 欧美日韩成人网| 亚洲精品视频在线观看视频| 欧美日韩在线观看视频小说| 国产ts人妖一区二区三区| 美女999久久久精品视频| 精品久久久久久久中文字幕| 国产丝袜精品第一页| 欧美激情精品久久久久久免费印度| 亚洲视频一区二区| 国产日韩欧美夫妻视频在线观看| 精品日韩美女的视频高清| 日韩亚洲在线观看| 狠狠色狠狠色综合日日小说| 欧美大片免费观看在线观看网站推荐| 97视频免费在线观看| 欧美日韩成人在线观看| 国产精品日韩av| 欧美激情精品在线| 国产精品成人久久久久| 欧美视频裸体精品| 色偷偷噜噜噜亚洲男人的天堂| 久久久久久国产|