L6-js定时器的应用

今天我们来说说定时器,其实定时器在很多程序中是很常用的,比如我们看到的一些网站上的滚动图片,鼠标移动到QQ头像上的效果,还有网站上时间表等等。接下来我们就围绕这三个定时器的经典应用来了解定时器。

首先,我们讲到的是如果开启定时器

  setInterval  间隔型,应用:无缝滚动、网站时钟

  setTimeout  延时型,应用:QQ头像应用

停止定时器

  clearInterval

  clearTimeout

两种定时器的区别:

  简单的说,setInterval会在设定的时间自动重复,setTimeout不会重复而具有延时性

接下来,就是我们的应用:

1、数码时钟

效果思路

  获取系统时间

    Date对象

    getHours、getMinutes、getSeconds

  显示系统时间

    字符串连接

    空位补零

  设置图片

    charAt方法   //   能解决兼容性问题

html

  <img scr = "img/1.png"/><img src = "img/2.png"/>:<img src = "img/3.png"/><img src = "img/4.png"/>:<img src = "img/5.png"/><img src = "img/6.png"/>

js

function toDou(num){  //  空位补零函数

  if(num<10){

    return "0" + num;

  }

  else{

    return "" + num;

  }

}

window.onload = function(){

var aImg = document.getElementsByTagName(‘img‘);

function tick = function(){

//  获取系统时间

var oDate = new Date();

//  字符串连接

var oTime = toDou(oDate.getHours())+toDou(oDate.getMinutes())+toDou(oDate.getSeconds())

for(var i = 0; i < aImg.length; i++){

  // 设置图片

  aImg[i] .src = "img/"+oTime[i]+"png";

  }

  }

setInterval(tick,1000);  //  1000ms = 1s

tick();  //  防止页面刷新时,显示 00:00:00

}

2、延时提示框

效果思路

  原来方法

    移入显示,移除隐藏

  移出延时隐藏

    移入下面的Div后,还是隐藏了

  简化代码

    合并两个相同的onmouseover和onmouseout

html

<div id = "Icon" style = "width:50px; height:50px; background:green; float:left; margin-right:20px;"></div>

<div id="Icondetail" style = "width:200px; height:150px; background:#ccc; float:left; display:none" ></div>

js

var oDiv1 = document.getElementById("Icon");

var oDiv2 = document.getElementById("Icondetails");

var timer = null;

oDiv2.onmouseover = oDiv1.onmouseover = functiton(){

  clearTimerout(timer);

  oDiv2.style.display = ‘block‘;

}

oDiv2.onmouseout =oDiv1.onmouseout = function(){

  timer = setTimeout(function(){

    oDiv2.style.display = ‘none‘;

  },500);

}

3、无缝滚动——基础

效果思路

  物体运动基础

  让Div移动起来

  offsetLeft的作用

  用定时器让物体连续移动

<div id= "div1" style = "width:200px; height:200px; background:red"></div>

js

var oDiv = document.geElementById("div1");

setInterval(function(){

  oDiv.style.left = oDiv.offsetLeft + 2 + "px";

},30);

效果原理

  让ul一直向左移动

  复制li

    innerHTML 和 +=

  修改ul的width

  滚动过界后,重设位置(判断过界)

扩展

  改变滚动方向

    修改speed

    修改判断条件

  鼠标移入暂停

    移入关闭定时器

    移除重新设置定时器

<div id = "div1" >

  <ul>

<li><img src = "img/1.jpg"/></li>

<li><img src = "img/2.jpg"/></li>

<li><img src = "img/3.jpg"/></li>

<li><img src = "img/4.jpg"/></li>

  </ul>

</div>

<a href = "javascript:;">向左走</a>

<a href = "javascript:;">向右走</a>

*{margin:0; padding:0;}

#div1 {width:718px; height:108px; border:1px solid #000; position:relative; overfloat:hidden;} 

#div1 ul { position:absolute; top:0; left:0}

#div1 ul li{width:178px; height:108px; list-style:none;}

var oDiv = document.getElementById("div1");

var oUl = oDiv.getElementsByTagName("ul");

var aLi = oUl.getElementsByTagName("li");

var speed= null;

//复制li

oUl.innerHTML += oUl.innerHTML;

//修改ul的width

oUl.style.width = aLi[0].width * aLi.length + "px";

function move(){

if(oUl.offsetLeft<- oUl.offsetWidth/2){

  oUl.style.left = "0";

}

if(oUl.offsetLeft>0){

  oUl.style.left = - oUl.offsetWidth/2 + "px";

}

oUl.style.left = oUl.offsetLeft - speed + "px";

}

var timer = setInterval(move,30);

扩展:

//鼠标移入暂停,移出移动

oDiv.onmouseover = function(){

  clearInterval(timer);

}

oDiv.onmouseout = function(){

  setInterval(move,30);

}

//改变滚动方向

document.getElementsByTagName("a")[0].onclick = function(){

  speed = -2;   //  向左移动

}

document.getElementsByTagName("a")[1].onclick = function(){

  speed = 2;   //  向右移动

}

总结:主要是两个定时器的开启和关闭的应用。同时,还讲到的offsetLeft获取对象的左边距(包含margin-left);还有在写程序中主要变量的使用,运用变量来处理一些需要变的东西,比如这里应用到的speed来控制的方向;兼容性问题:charAt()方法:返回指定位置的字符。

时间: 2024-10-30 13:26:08

L6-js定时器的应用的相关文章

C#-WebForm JS定时器(转)

C#-WebForm JS定时器 JS定时器: 1.window.setTimeout(function(){},3000) 延迟3秒执行 2.window.setInterval(function(){},3000) 也叫重复器,每3秒重复相同的事件 关闭定时器: var timer = window.setTimeout(function(){ window.clearTimeout("timer"); },3000); var timer = window.setInterval

C#-WebForm JS定时器

JS定时器: 1.window.setTimeout(function(){},3000) 延迟3秒执行 2.window.setInterval(function(){},3000) 也叫重复器,每3秒重复相同的事件 关闭定时器: var timer = window.setTimeout(function(){ window.clearTimeout("timer"); },3000); var timer = window.setInterval(function(){ wind

移动Web与js定时器暂停或不准确计时的问题解决

PC 上的 Firefox.Chrome 和 Safari 等浏览器,都会自动把未激活页面中的 JavaScript 定时器(setTimeout.setInterval)间隔最小值改为 1 秒以上:而移动设备上的浏览器往往会直接冻结未激活页面上的所有定时器」.今天继续聊一聊 JavaScript 定时器与移动 Web 这个话题. 计时器 最简单的计时器只需要一个时间变量和固定间隔运行的函数就可以了,定期把上一次时间(默认为系统初始时间)加上运行间隔就是当前时间了.在 PC 上,这样实现的计时器

js定时器的使用(实例讲解)

js定时器的使用(实例讲解) 作者: 字体:[增加 减小] 类型:转载 时间:2014-01-06我要评论 本篇文章主要介绍了js中定时器的使用方法.需要的朋友可以过来参考下,希望对大家有所帮助 在javascritp中,有两个关于定时器的专用函数,分别为: 1.倒计定时器:timename=setTimeout("function();",delaytime);2.循环定时器:timename=setInterval("function();",delaytime

js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()

  在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数.这里面涉及到了三个函数方法:setInterval().setTimeout().clearInterval(),本文将围绕这三种函数的用法,来实现定时器的功能,需要的朋友可以过来参考下,喜欢的可以点波赞,或者关注一下本人,希望对大家有所帮助. 定时器的应用需求: 1.设定一个时间,当时间到达的时候执行函数----比如:倒计时跳转页面等等. 2.每隔一段时间重复执行某段函数----比如抢票软件,

JS 定时器的4种写法及介绍

JS提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下setTiemout.setInterval.setImmediate.requestAnimationFrame. 一.什么是定时器 JS提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下 setTimeout: 设置一个定时器,在定时器到期后执行一次函数或代码段 var timeoutId = window.setTimeout(func[, delay, param1, param2, ...]); var

js定时器和this常见误区

定时器: js定时器有两种方法:setInterval(func,毫秒)和setTimeout(func,毫秒) 区别:setInterval()是间隔周期无限循环直到清除,而setTimeout()只执行一次,所以使用定时器是否循环就可以甄别选择 相同:都是先间隔指定的毫秒后执行函数 this: js中this和jquery中this 相同点:都是按照谁调用的就指向谁. 案例1: var name = "jack"; var getName=function() { return t

JS定时器做物体运动

JS定时器是函数 setInterval(函数体/函数名  , 时间) 清楚定时器 clearInterval(函数) 时间单位(毫秒) 1000毫秒  = 1秒 首先我们要知道用JS定时器能干什么?定时器的原理是什么? 我的理解为,定时器是能让一个物体根据规定的时间做规定的移动,而物体运动是怎样的效果呢?你可以理解为一个人走路,要走到某个位置,要走到这个位置肯定是一步步移动才能达到,而不是瞬间就到达的,所以定时器的作用更像是让物体像人一样走到相应的位置 比如: 规定一个横形状方块,其中包裹一个

js定时器的一些小问题

1 js中定时器分为两种:setInterval和setTimeout, 但是在代码的执行中,定时器的优先级最低,系统里其他不在执行的时候,它才开始.例子如下: 2 3 <script> 4 window.onload=function(){ 5 setInterval(function(){ 6 alert(1); 7 },10); 8 for(var i=0;i<1000000;i++){ 9 for(var j=0;j<1000000;j++){ 10 var a=10; 1

js 定时器

1. 设置定时器 语法:setInterval(函数,时间) 注意: 函数书写时不能带括号 setInterval(fn,1000)//正确 setInterval(fn(),1000)//错误 时间的最小设置不小于14ms 2. 清除定时器 语法:clearInterval(所清除的定时器名称) 3. 实例探究 js部分 window.onload = function() { var timer = null; var num = 0; var i = 0; var arr=['red','