javascript定时器:setTimeout与setInterval
概述:
setTimeout:在指定的延迟时间之后调用一个函数或者执行一个代码片段,只执行一次;
setInterval:周期性地调用一个函数(function)或者执行一段代码,重复执行;
语法格式及示例:
setTimeout:
var timer=setTimeout(function(){
//要执行的代码
code
},delay);
* delay 是延迟的毫秒数 (一秒等于1000毫秒),函数的调用会在该延迟之后发生.但是实际的延迟时间可能会稍长一点
* code 是delay毫秒之后执行的函数
* timer 是该延时操作的ID, 此ID随后可以用来作为clearTimeout()方法的参数
Demo:广告页面的出现又自动消失
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>setTimeout显示又消失</title>
<style type="text/css">
.demo{
position: absolute;
top:0;right: 0;bottom: 0;left: 0;
margin:auto;
width: 435px;
height: 472px;
display: none;
background: url(888.jpg) no-repeat;
background-size:cover;
}
</style>
</head>
<body> <div class="demo" id="demo"></div> <script type="text/javascript"> window.onload=function(){ var oDiv=document.getElementById('demo'); setTimeout(function(){
oDiv.style['display']='inline-block'; setTimeout(function(){ oDiv.style['display']='none'; },3000); },2000) } </script> </body>
</html>
setInterval:
var timer=setTimeout(function(){
//要执行的代码
code
},delay);
*function将会被重复调用;
*timer 是该延时操作的ID, 此ID随后可以用来作为clearInterval()方法的参数;
*每隔delay(延迟时间)之后,上面代码就创建一个执行代码的定时器;
*当前一个定时器代码执行时,紧跟后面的第一个定时器代码将添加到队列中,等待执行,再后面的定时器代码不会添加到队列中
*可以利用定时器制作一些动画
Demo:连续落下的圆
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>rainning</title>
<style type="text/css">
.demo{width:50px; height:50px; border-radius:25px;background:#11cd6e; position:absolute; top:0px;}
</style>
</head>
<body> <script type="text/javascript">
var str = '';
var len = 20;
var aDiv = document.getElementsByTagName('div');
var timer = null;
var num = 0;
for ( var i=0; i<len; i++ ) {
document.body.innerHTML += '<div class="demo" style="left:'+ i*60 +'px;"></div>';
} document.onclick = function () {
clearInterval(timer);
timer= setInterval( function (){
doMove(aDiv[num]);
num ++;
if ( num === len ) {
clearInterval( timer );
}
}, 100 );
}; function doMove (obj) { clearInterval( obj.timer ); obj.timer = setInterval(function () { var speed = parseInt(getStyle( obj, 'top' )) + 23; // 下降单位
if ( speed > 500 ) {
speed = 500;
} obj.style['top'] = speed + 'px'; if ( speed == 500 ) {
clearInterval( obj.timer );
} }, 30);
} //获取元素样式值 function getStyle(obj,attr){
return obj.currentStyle?currentStyle[attr]:getComputedStyle(obj)[attr];
} </script> </body>
</html>
了解更多:
http://www.cnblogs.com/strick/p/3983904.html
http://www.cnblogs.com/yangjunhua/archive/2012/04/12/2444106.html
http://www.cnblogs.com/tly0512/archive/2012/06/29/2568905.html
javascript定时器:setTimeout与setInterval的更多相关文章
- Javascript的setTimeOut()和setInterval()的定时器用法
Javascript用来处理延时和定时任务的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请 ...
- Javascript 笔记与总结(2-13)定时器 setTimeout 和 setInterval
定时器可以让 js 效果每隔几秒钟执行一次或者 n 秒之后执行某一个效果.定时器不属于 javascript,是 window 对象提供的功能. setTimeout 用法: window.setTi ...
- JS 定时器 setTimeout 与 setInterval 的区别和用法
定时器: window.setTimeout(function(){},间隔时间毫秒); -- 定时炸弹,延迟执行,只执行一次 window.setInterval(function(){},间隔的时 ...
- 定时器setTimeout()和setInterval()使用心得整理
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成. 一.setTimeout() setTimeout函 ...
- 有关定时器setTimeout()、setInterval()详解
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成. setTimeout() setTimeout函数用 ...
- JavaScript 关于setTimeout与setInterval的小研究
说明 在开发功能"轨迹播放"时,遇到了一个情况. 原先同事已经开发了一版,这次有个新功能:点击线上任意一点后可以从点击处重新播放. 看了一下原来的版本,发现同时使用了setTime ...
- 高级定时器-setTimeout()、setInterval()、链式setTimeout()
使用 setTimeout()和 setInterval()创建的定时器可以用于实现有趣且有用的功能.执行时机是不能保证的,因为在页面的生命周期中,不同时间可能有其他代码在控制 JavaScript ...
- JavaScript的setTimeout和setInterval的深入理解
发表过一片博客<跟着我用JavaScript写计时器>,比较基础.....有网友说应该写一下setTimeout的原理和机制,嗯,今天就来写一下吧: 直奔主题:setTimeout和set ...
- Javascript中setTimeout和setInterval的区别和使用
在javascript中,window对象有两个主要的定时方法,分别是setTimeout 和 setInterval,其语法基本上相同,但是完成的功能取有区别. setTimeout方法是定时程序, ...
随机推荐
- Duanxx的技术问题:word界面显示模糊
今天打开word时,出现了word打开失败的现象,并且word的界面显示特别的模糊,找了好半天,才解决,问题见下图: 解决方式: 在word的文件->选项,这里面找到显示,然后勾选:禁用硬件图形 ...
- mysql中DES加密解密
DES_DECRYPT(crypt_str[,key_str]) 使用DES_ENCRYPT()加密一个字符串.若出现错误,这个函数会返回 NULL. 注意,这个函数只有当MySQL在SSL 的支 ...
- C++沉思录之三——设计容器类
一.对容器的基本认识 总的来说,容器应该包含放在其中的对象的副本,而不是对象本身. 二.复制容器意味着什么? 通常将容器成为模板,而容器内的对象的类型就是模板参数.Container<T> ...
- mybati之#与$的区别
$是用于sql的拼接: //因为user_name是String类型,所以在sql中加上单引号,需要手动的判断数据类型,value是如果没有指定参数的话,value就是默认参数名称,获取穿的参数就是: ...
- css伪类选择器详细解析及案例使用-----伪类选择器(2)
结构伪类选择器: <div> <ul> /*ul:only-of-type*/ <li>one</li> /*li:first-child li:nth ...
- 初探CSS
css基本框架 index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- asp.net验证控件注意事项
1.如果触发某个控件事件是只对指定验证控件进行验证,可以将验证控件和被触发控件放到到一个ValidationGroup中.比如点提交按钮的时候,验证文本框,可以将提交按钮和验证控件放到一个Valida ...
- 武汉科技大学ACM :1005: 零起点学算法101——手机短号
Problem Description 大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号.假设所有的短号都是是 6+手机号的后5位,比 ...
- PM2.5空气质量指数(AQI)是如何计算的
AQI如何计算 具体要计算PM2.5空气质量指数(AQI),SENBE申贝技术人员向您介绍如何计算的公式. 比如当实测浓度小于等于0.035时,根据实测浓度×50/0.035计算.例如 ...
- lib,dll区别 及 VS中如何添加lib,dll
1.加载lib/头文件 分两种方法: (1)适用于当前项目 第一步:项目->属性->C/C++->常规->附加包含目录(浏览.h文件的路径) 添加包含文件 第二步:项目-> ...