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 相关文章推荐
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
Jun 26 Javascript
JS 日期验证正则附asp日期格式化函数
Sep 11 Javascript
一个基于jquery的文本框记数器
Sep 19 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
jQuery中 noConflict() 方法使用
Apr 25 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
Sep 25 Javascript
JS+Canvas 实现下雨下雪效果
May 18 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
Jan 11 Javascript
你可能不知道的JSON.stringify()详解
Aug 17 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
Jun 10 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
Sony CFR 320 修复改造
2020/03/14 无线电
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
python登录豆瓣并发帖的方法
2015/07/08 Python
Python实现的弹球小游戏示例
2017/08/01 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
简述python Scrapy框架
2020/08/17 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
医德医魂心得体会
2014/09/11 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
酒店前台岗位职责
2015/04/16 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL