javascript计时器事件使用详解


Posted in Javascript onJanuary 07, 2014

在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:

setTimeout()
未来的某时执行代码

clearTimeout()
取消setTimeout()
setTimeout()
语法

var t=setTimeout("javascript语句",毫秒)

setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。

第二个参数指示从当前起多少毫秒后执行第一个参数。

提示:1000 毫秒等于一秒。

当下面这个例子中的按钮被点击时,一个提示框会在5秒中后弹出。

<html>
<head>
<script type="text/javascript">
function timedMsg()
 {
 var t=setTimeout("alert('5 seconds!')",5000)
 }
</script>
</head>
<body>
<form>
<input type="button" value="Display timed alertbox!" onClick="timedMsg()">
</form>
</body>
</html>

实例 - 无穷循环

要创建一个运行于无穷循环中的计时器,我们需要编写一个函数来调用其自身。在下面的例子中,当按钮被点击后,输入域便从 0 开始计数。

<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
 {
 document.getElementById('txt').value=c
 c=c+1
 t=setTimeout("timedCount()",1000)
 }
</script>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
</form>
</body>
</html>

clearTimeout()

语法

clearTimeout(setTimeout_variable)
 

实例

下面的例子和上面的无穷循环的例子相似。唯一的不同是,现在我们添加了一个 "Stop Count!" 按钮来停止这个计数器:

<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
 {
 document.getElementById('txt').value=c
 c=c+1
 t=setTimeout("timedCount()",1000)
 }
function stopCount()
 {
 clearTimeout(t)
 }
</script>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="Stop count!" onClick="stopCount()">
</form>
</body>
</html>

另外两个重要的方法:

setInterval()
setInterval() - executes a function, over and over again, at specified time intervals

作用是:循环执行一个方法,在规定的间隔时间内

语法:

window.setInterval("javascript function",milliseconds);

说明:第一个参数必须是一个函数,第二个参数是执行函数的间隔时间.

实例:

<html>
<script type="text/javascript">
setInterval(function() {alert("hello")},500);
</script>
</html>

说明:上面例子,执行效果是说每隔500ms就alert("hello");

再来一个时钟:

<html>
<body>
<p id="demo" ></p>
<script type="text/javascript">
setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
</script>
</body>
</html>    

如何停止,setInterval()方法??

window.clearInterval()

语法:
window.clearInterval(intervalVariable)
The window.clearInterval() method can be written without the window prefix.
To be able to use the clearInterval() method, you must use a global variable when creating the interval method:
myVar=setInterval("javascript function",milliseconds);
Then you will be able to stop the execution by calling the clearInterval() method.

实例:

<html>
<body>
<p id="demo" ></p>
<p id="demo2" onclick="stop()">stop</p>
<script type="text/javascript">
var temp=setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
function stop(){
   <html>
<body>
<p id="demo" ></p>
<p id="demo2" onclick="stop()">stop</p>
<script type="text/javascript">
var temp=setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
function stop(){
        clearInterval(temp);
}
</script>
</body>
</html>
}
</script>
</body>
</html>
Javascript 相关文章推荐
原创javascript小游戏实现代码
Aug 19 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 Javascript
IE的事件传递-event.cancelBubble示例介绍
Jan 12 Javascript
JavaScript版的TwoQueues缓存模型
Dec 29 Javascript
jQuery插件expander实现图片翻转特效
May 21 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
老生常谈JavaScript数组的用法
Jun 10 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
Aug 09 Javascript
vue-router传参用法详解
Jan 19 Javascript
node实现socket链接与GPRS进行通信的方法
May 20 Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 Javascript
详解mpvue开发微信小程序基础知识
Sep 23 Javascript
javascript创建和存储cookie示例
Jan 07 #Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
Jan 07 #Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 #Javascript
js showModalDialog参数的使用详解
Jan 07 #Javascript
js showModalDialog弹出窗口实例详解
Jan 07 #Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 #Javascript
JS获取DropDownList的value值与text值的示例代码
Jan 07 #Javascript
You might like
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
js在HTML的三种引用方式详解
2020/08/29 Javascript
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
Python实现合并字典的方法
2015/07/07 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python画折线图的程序
2018/07/26 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
毕业生就业自荐信
2013/12/04 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
商业活动邀请函
2014/02/04 职场文书
党员转正意见怎么写
2015/06/03 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
比较几种Redis集群方案
2021/06/21 Redis