JavaScript计时事件通过使用JavaScript中的BOM对象中的window对象的两个方法就是setTimeout()方法和claerTimeout()方法,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。
在JavaScritp中使用计时事件是很容易的,两个关键方法是:
setTimeout()//未来的某时执行代码。
clearTimeout()//取消setTimeout()。
(1)setTimeout()方法
语法
~~~
var time=setTimeout("javascript语句",毫秒);
~~~
setTimeout()方法会返回某个值。在上面的语句中,值被储存在名为time的变量中。setTimeout()的第一个参数是含有JavaScrip 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。第二个参数指示从当前起多少毫秒后执行第一个参数(提示:1000 毫秒等于一秒)。
(2)clearTimeout()方法
语法
~~~
clearTimeout(setTimeout_variable);
~~~
假如你希望取消上面的setTimeout(),你可以使用这个time变量名来指定它。也就是可以这样写:
~~~
clearTimeout(time);
~~~
那么下面我们就来说几个实例:
实例一:简单的计时
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS计时事件</title>
<script type="text/javascript">
function timeCount()
{
var time=setTimeout("alert('5秒到了!!!')",5000);
}
</script>
</head>
<body>
<form>
<input type="button" value="开始计时" onClick = "timeCount()" />
</form>
<p>请点击上面的按钮。警告框会在开始后5秒后显示出来。</p>
</body>
</html>
~~~
运行的结果为:
![](https://box.kancloud.cn/2016-04-28_5721559293b57.jpg)
实例二:另一个简单的计时
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS计时事件</title>
<script type="text/javascript">
function timeCount()
{
var t1=setTimeout("document.getElementById('txt').value='2 秒'",2000)
var t2=setTimeout("document.getElementById('txt').value='4 秒'",4000)
var t3=setTimeout("document.getElementById('txt').value='6 秒'",6000)
}
</script>
</head>
<body>
<form>
<input type="button" value="显示计时的文本" onClick="timeCount()" />
<input type="text" id="txt" />
</form>
<p>点击上面的按钮。输入框会显示出已经逝去的时间(2,4,6秒)。</p>
</body>
</html>
~~~
运行的结果为:
![](https://box.kancloud.cn/2016-04-28_57215592a4439.jpg)
![](https://box.kancloud.cn/2016-04-28_57215592b753f.jpg)
![](https://box.kancloud.cn/2016-04-28_57215592caccd.jpg)
实例三:一个无穷循环的计时事件
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS计时事件</title>
<script type="text/javascript">
var time;//计时事件变量
var c=0;//文本框显示的数据
function timeCount()
{
document.getElementById('test').value=c;
c=c+1;
time=setTimeout("timeCount()",1000);
}
</script>
</head>
<body>
<form>
<input type="button" value="开始计时" onClick = "timeCount()" />
<input type="text" id="test" />
</form>
<p>请点击上面的按钮。输入框会从0开始一直进行计时。</p>
</body>
</html>
~~~
点击开始计时按钮的结果:
![](https://box.kancloud.cn/2016-04-28_57215592dab3c.jpg)
![](https://box.kancloud.cn/2016-04-28_57215592e97b0.jpg)
实例四: 带有停止按钮的无穷循环中的计时事件
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS计时事件</title>
<script type="text/javascript">
var time;//计时事件变量
var c=0;//文本框显示的数据
function timeCount()
{
document.getElementById('test').value=c;
c=c+1;
time=setTimeout("timeCount()",1000);
}
function stopCount()
{
c=0;
setTimeout("document.getElementById('test').value=0",0);
clearTimeout(time);
}
</script>
</head>
<body>
<form>
<input type="button" value="开始计时" onClick = "timeCount()" />
<input type="text" id="test" />
<input type="button" value="停止计时" onClick="stopCount()" />
</form>
<p>请点击上面的“开始计时”按钮来启动计时器。输入框会一直进行计时,从0开始。<br/>
点击“停止计时”按钮可以终止计时,并将计数重置为0。</p>
</body>
</html>
~~~
点击开始计时的结果:
![](https://box.kancloud.cn/2016-04-28_5721559305ddd.jpg)
点击停止计时的结果:
![](https://box.kancloud.cn/2016-04-28_5721559318a59.jpg)
实例五:使用计时事件制作的钟表
这个实例其实在前面的博文中已经使用过:
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS计时事件</title>
<script type="text/javascript">
function startTime()
{
var today=new Date();
var hour=today.getHours();
var minute=today.getMinutes();
var second=today.getSeconds();
//小于10在数字前面家一个0
minute=checkTime(minute);
second=checkTime(second);
document.getElementById("test").innerHTML=hour+":"+minute+":"+second;
var time=setTimeout("startTime()",500);
}
function checkTime(i)
{
if (i<10)
{
return i="0" + i;
}
else
{
return i;
}
}
</script>
</head>
<body onload="startTime()">
<div id="test"></div>
</body>
</html>
~~~
运行的结果为:
![](https://box.kancloud.cn/2016-04-28_57215593299dd.jpg)
- 前言
- HTML学习1:Dreamweaver8的安装
- HTML学习2:初识HTML
- HTML学习3:常用标签之文本标签
- HTML学习4:常用标签之列表标签
- HTML学习5:常用标签之图像标签
- HTML学习6:常用标签之超链接标签
- HTML学习7:常用标签之表格标签
- HTML学习8:常用标签之框架标签
- HTML学习9:常用标签之表单标签
- HTML学习10:表单格式化
- HTML学习11:HTTP 方法
- HTML学习12:其他常见标签之头标签
- HTML学习13:其他常见标签之体标签
- 轻松学习JavaScript一:为什么学习JavaScript
- 轻松学习JavaScript二:JavaScript语言的基本语法要求
- 轻松学习JavaScript三:JavaScript与HTML的结合
- 轻松学习JavaScript四:JS点击灯泡来点亮或熄灭这盏灯的网页特效映射出JS在HTML中作用
- 轻松学习JavaScript五:JavaScript的变量和数据类型
- 轻松学习JavaScript六:JavaScript的表达式与运算符
- 轻松学习JavaScript七:JavaScript的流程控制语句
- 轻松学习JavaScript八:JavaScript函数
- 轻松学习JavaScript九:JavaScript对象和数组
- 轻松学习JavaScript十:JavaScript的Date对象制作一个简易钟表
- 轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型
- 轻松学习JavaScript十二:JavaScript基于面向对象之创建对象(一)
- 轻松学习JavaScript十二:JavaScript基于面向对象之创建对象(二)
- 轻松学习JavaScript十三:JavaScript基于面向对象之继承(包含面向对象继承机制)
- 轻松学习JavaScript十四:JavaScript的RegExp对象(正则表达式)
- 轻松学习JavaScript十五:JavaScript之BOM简介
- 轻松学习JavaScript十六:JavaScript的BOM学习(一)
- 轻松学习JavaScript十七:JavaScript的BOM学习(二)
- 轻松学习JavaScript二十九:JavaScript中的this详解
- CSS基础学习一:CSS概述
- CSS基础学习二:如何创建 CSS
- CSS基础学习三:CSS语法
- CSS基础学习四:元素选择器
- CSS基础学习五:类选择器
- CSS基础学习六:id选择器
- CSS基础学习七:属性选择器
- CSS基础学习八:派生选择器
- CSS基础学习九:伪类
- CSS基础学习十:伪元素
- CSS基础学习十一:选择器的优先级
- CSS基础学习十二:CSS样式
- CSS基础学习十三:盒子模型
- CSS基础学习十四:盒子模型补充之display属性设置
- CSS基础学习十五:盒子模型补充之外边距合并
- CSS基础学习十六:CSS盒子模型补充之border-radius属性
- CSS基础学习十七:CSS布局之定位
- CSS基础学习十八:CSS布局之浮动
- CSS基础学习十九:CSS布局之图文混排,图像签名,多图拼接和图片特效
- DIV+CSS实操一:经管系网页总体模块布局
- DIV+CSS实操二:经管系网页添加导航栏和友情链接栏
- DIV+CSS实操三:经管系网页内容模块添加标题栏和版权信息模块
- DIV+CSS实操四:经管系网页内容模块内容添加(一)
- DIV+CSS实操五:经管系网页内容模块内容添加(二)
- DIV+CSS实操六:经管系网页添加导航栏下拉菜单
- DIV+CSS实操七:中文系内容模块控制文本不换行和超出指定宽度后用省略号代替
- JS中实现字符串和数组的相互转化