使用 JavaScript 中的 window 对象执行计时操作,完成一个抽奖程序
查看本章节
查看作业目录
需求说明:
使用 JavaScript 中的 window 对象执行计时操作,完成一个抽奖程序


实现思路:
- 在 HTML 页面中放置背景图片、转盘和指针 3 张图片,并设置指针的点击事件
- 使用 window 对象的 setInterval() 方法反复执行间歇性旋转操作,当获取旋转的度数后,调用 window 对象的 clearInterval() 方法取消间歇性旋转操作
- 调用 window 对象的 setTimeout() 方法,在 4 秒后提示用户中奖结果
实现代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>抽奖</title>
<style type="texts">
#bg{
width: 650px;
height: 600px;
margin: 0 auto;
background:url(imgtable-bg.jpg.jpg)no-repeat ;
position: relative;
}
#pointer{
position: absolute;
z-index: 10;
top: 155px;
left: 247px;
}
#turntable{
position: absolute;
z-index: 5;
top: 60px;
left: 116px;
transition: all 4s;
}
</style>
</head>
<body>
<div id="bg">
<img id="pointer" src="img/pointer.png" alt="pointer" onClick="start()"/>
<img id="turntable" src="imgtable.png" alt="turntable"/>
</div>
<script type="text/javascript">
var pointer=document.getElementById("pointer");
var turntable=document.getElementById("turntable");
var gameover=true;
var cat=51.4;
var lenCloc=0;
function start(){
if (gameover) {
gameover=!gameover;
rotate();
}
}
function rotate(){
lenCloc++;
var timer=null;
clearInterval(timer);
timer=setInterval(function(){
var soBuom=parseInt(Math.floor(Math.random()*51.4)-30.7);
var rdm=lenCloc*3*360+soBuom;
turntable.style.transform="rotate("+rdm+"deg)";
clearInterval(timer);
setTimeout(function(){
gameover=!gameover;
num=rdm%360;
if (num<=cat*1) {
alert("恭喜您获得一等奖\n4999元免单");
}else if (num<=cat*2) {
alert("恭喜您获得二等奖\n50元免单");
} else if (num<=cat*3) {
alert("恭喜您获得三等奖\n10元免单");
}else if (num<=cat*4) {
alert("恭喜您获得四等奖\n5元免单");
}else if (num<=cat*5) {
alert("恭喜您获得五等奖\n免分期服务费");
}else if (num<=cat*6) {
alert("恭喜您获得六等奖\n提高白条额度");
}else if (num<=cat*7) {
alert("未中奖");
}
},4000);
},30);
}
</script>
</body>
<ml>
使用 JavaScript 中的 window 对象执行计时操作,完成一个抽奖程序的更多相关文章
- JavaScript中的window对象
JavaScript中的window对象:http://www.cnblogs.com/kissdodog/archive/2013/01/01/2841464.html
- 理解JavaScript中的window对象
前言 每个JavaScript环境都有一个全局对象(global object).在全局范围内创建的任何变量实际上都是这个对象的属性,而任何函数都是它的方法.在浏览器环境中,全局对象是window对象 ...
- JavaScript中的window对象的属性和方法;JavaScript中如何选取文档元素
一.window对象的属性和方法 ①setTimeout()方法用来实现一个函数在指定毫秒之后运行,该方法返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行. ②setIn ...
- java基础65 JavaScript中的Window对象(网页知识)
1.javaScript组成部分 1.EMCAScript(基本语法) 2.BOM(Browser Object Model):浏览器对象模型 浏览器对象模型中的浏览器的各 ...
- JavaScript中的global对象,window对象以及document对象的区别和联系
JavaScript中的global对象,window对象以及document对象的区别和联系 一.概念区分:JavaScript中的global对象,window对象以及document对象 1.g ...
- (转载)JavaScript中的Window窗口对象
(转载)http://www.ijavascript.cn/jiaocheng/javascript-window-65.html 例子: <html> <head> < ...
- 【学习笔记】:JavaScript中的BOM对象
JavaScript中的BOM对象 BOM(Browser Object Model):浏览器对象模型. BOM可用于对浏览器窗口进行访问,但BOM没有相关的标准,所以根据浏览器的不同,其中定义的对象 ...
- JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)
1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向 ...
- JavaScript权威指南--window对象
知识要点 window对象及其客户端javascript所扮演的核心角色:它是客户端javascript程序的全局对象.本章介绍window对象的属性和方法,这些属性定义了不同的API,但是只有一部分 ...
随机推荐
- 从jvm字节码指令看i=i++和i=++i的区别
1. 场景的产生 先来看下下面代码展示的两个场景 @Testvoid testIPP() { int i = 0; for (int j = 0; j < 10; j++) { i = i++; ...
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(终)-配合内存管理来遍历SD卡
[STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 [STM3 ...
- tableView和tableViewCell的背景颜色问题
当在tableView中添加cell数据时,我们会发现原本设置的tableView的背景颜色不见了,这是因为加载cell数据时,tableView的背景颜色被cell数据遮盖住了,此时,可以通过设置c ...
- spring生成EntityManagerFactory的三种方式
spring生成EntityManagerFactory的三种方式 1.LocalEntityManagerFactoryBean只是简单环境中使用.它使用JPA PersistenceProvide ...
- 【Linux】【Problems】在fedora 9上解决依赖问题
summary: 在32bit的fedora9上安装EMC客户端遇到无法解决的依赖问题 detail: rpm 安装: [root@hcszmons02 tmp]# rpm -ivh lgtoclnt ...
- BeanDefinitionLoader spring Bean的加载器
spring 容器注册bean , 会把bean包装成beanDefinition 放进spring容器中,beanDefinitionLoader就是加载bean的类 . 一.源码 class Be ...
- java使用在线api实例
字符串 strUrl为访问地址和参数 public String loadAddrsApi() { StringBuffer sb; String strUrl = "https://api ...
- 使用CCS10新建TMS320F28335工程并闪烁LED(流水灯)程序
学习TMS320F28335使用Code Composer Studio 10.4.0下载和安装本文不再叙述. 1. 新建工程 1.1选择目录新建工作区 1.2打开软件界面如下图所示: 1.3选择新建 ...
- Hyper-v安装Centos7
开篇语 知识库地址:https://azrng.gitee.io/kbms 介绍 可以让你在你的电脑上以虚拟机的形式运行多个操作系统(至于为什么选择这个,主要是系统已经自带了,所以能不装其他我就先不装 ...
- 升级过log4j,却还没搞懂log4j漏洞的本质?
摘要:log4j远程代码漏洞问题被大范围曝光后已经有一段时间了,今天完整讲清JNDI和RMI以及该漏洞的深层原因. 本文分享自华为云社区<升级过log4j,却还没搞懂log4j漏洞的本质?为你完 ...