1.定时器的作用:

  开启定时器:setInterval  -->间隔型  

        setTimeout  -->延时型

  区别:setInterval会一直执行,应用如微博间隔一段时间不断请求后台数据,看是否有新消息,而setTimeout仅执行一次

  停止定时器:clearInterval、clearTimerout

  例子:定时器的开启和关闭

 var oBtn1=document.getElementById('btn1');
var oBtn2=document.getElementById('btn2');
var timer=null; //这里需注意 oBtn1.onclick=function (){
timer=setInterval(function (){
alert('a');
}, 1000);
}; oBtn2.onclick=function (){
clearInterval(timer); //需指定具体关闭的是哪个定时器
};

2.数码时钟:

  实现效果:

      

  效果思路:设置图片路径

  获取时间:Date对象、getHours、getMinutes、getSeconds

  显示时间:字符串连接、空位补零

  代码实现:

    布局:

 <body style="background:black; color: white; font-size:50px;">
<img src="img/0.png" />
<img src="img/0.png" />
:
<img src="img/0.png" />
<img src="img/0.png" />
:
<img src="img/0.png" />
<img src="img/0.png" />
</body>

    逻辑:

 //把一位数补零变成两位
function toDou(n){
if(n<10){
return '0'+n;
}
else{
return ''+n; //加空字符串可以保证返回的一定是字符串
}
} window.onload=function (){
var aImg=document.getElementsByTagName('img'); function tick(){
var oDate=new Date(); var str=toDou(oDate.getHours())+toDou(oDate.getMinutes())+toDou(oDate.getSeconds()); for(var i=0;i<aImg.length;i++){
//不兼容IE7,改用charAt方法,取字符串的某一位,此处为第三个兼容
//aImg[i].src='img/'+str[i]+'.png';
aImg[i].src='img/'+str.charAt(i)+'.png';
}
}
setInterval(tick, 1000); //1秒自动刷新,执行函数,解决时钟不动
tick(); //解决刷新时1秒延时问题
};

  Date对象其他方法:

 var oDate=new Date();

 //alert(oDate.getFullYear());
//alert(oDate.getMonth()+1); //月份需+1
//alert(oDate.getDate());
alert(oDate.getDay()); //星期0,1,2,3,4,5,6 ->日一二三四五六

3.延时提示框:

  实现效果类似鼠标移入QQ头像时,弹出一个信息框,移出信息框时,延时一段时间后消失,并且鼠标在头像和信息框间快速移入移出时无变化。

  实现效果:

        

  实现逻辑:

   var oDiv1=document.getElementById('div1');
var oDiv2=document.getElementById('div2');
var timer=null;
//注意定时器的清除,可消除快速移入移出头像和提示框时带来的抖动
oDiv1.onmouseover=function (){
clearTimeout(timer);
oDiv2.style.display='block';
};
oDiv1.onmouseout=function (){
timer=setTimeout(function (){
oDiv2.style.display='none';
}, 500);
}; oDiv2.onmouseover=function (){
clearTimeout(timer);
};
oDiv2.onmouseout=function (){
timer=setTimeout(function (){
oDiv2.style.display='none';
}, 500);
};

  整合重复代码:

   var oDiv1=document.getElementById('div1');
var oDiv2=document.getElementById('div2');
var timer=null; oDiv2.onmouseover=oDiv1.onmouseover=function ()
{
clearTimeout(timer);
oDiv2.style.display='block';
};
oDiv2.onmouseout=oDiv1.onmouseout=function ()
{
timer=setTimeout(function (){
oDiv2.style.display='none';
}, 500);
};

4.无缝滚动--基础:

  物体运动基础:

    让Div移动起来

    offsetLeft的作用-->获取物体的左边距,优点是可以考虑所有影响物体位置的因素(包括left、margin等)之后得出的一个最终值

    用定时器让物体连续运动

  注意:position需为absolute,然后改变其left和top值

  小例子:让一个div从左至右水平滚动,只改变其left值

 //#div1 {width:200px; height:200px; background:red; position:absolute; left:0; top:50px;}

 setInterval(function (){
var oDiv=document.getElementById('div1'); oDiv.style.left=oDiv.offsetLeft+10+'px';
}, 30);

(ps:本内容整理于blue视频教程及个人学习过程中总结,持续更新中)

3.定时器的使用(以通俗易懂的语言解释JavaScript)的更多相关文章

  1. 2.js深入(以通俗易懂的语言解释JavaScript)

    1.函数返回值: 即函数的执行结果 可以没有return 经验:一个函数应该只返回一种类型的值 2.函数传参 可变参(不定参):arguments ——>(参数的个数可变,参数数组) 例子1:求 ...

  2. 1.js基础(以通俗易懂的语言解释JavaScript)

    1.JavaScript组成: ECMAScript: 解释器.翻译 -->几乎没有兼容问题 DOM: Document Object Model -->有一些操作不兼容 BOM: Bro ...

  3. 通俗易懂的语言描述JavaScript原型

    这是一个翻译.原文地址http://javascriptissexy.com/javascript-prototype-in-plain-detailed-language/# 原型(prototyp ...

  4. 如何才能通俗易懂的解释javascript里面的"闭包"?

    看了知乎上的话题 如何才能通俗易懂的解释javascript里面的‘闭包’?,受到一些启发,因此结合实例将回答中几个精要的答案做一个简单的分析以便加深理解. 1. "闭包就是跨作用域访问变量 ...

  5. 谁能用通俗的语言解释一下什么是 RPC 框架

    转载自知乎:https://www.zhihu.com/question/25536695 知乎上很多问题的答案还是很好的,R大就经常在上面回答问题~ 谁能用通俗的语言解释一下什么是 RPC 框架? ...

  6. 关于JAVA,特点,历史,编译式的语言&解释式的语言,什么是java?JDK?DOS?一次编译到处运行原理。

    1.java语言的特点: 简单的:面向对象的:跨平台(操作系统)的(一次编译,到处运行):高性能的: 2.类名的首字母大写,方法小写: 3.历史: java2(即java),为什么加个2呢?1998年 ...

  7. ECMAScript进化史(1):​话说Web脚本语言王者JavaScript的加冕历史

    互联网起火-Web时代的来临 在行文之前,反手就安利一下<浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战>. 浏览器始祖NCSA Mosaic在1993年1月发布(于1992 ...

  8. sqli篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题

    前言 最早接触安全也是从xss攻击和sql注入攻击开始的. 和xss一样屡居OWASPtop10 前三名的漏洞,sqli(sql Injection)sql注入攻击也是web安全中影响较大和影响范围较 ...

  9. XXE篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题

    0x01 Brief Description XXE(XML External Entity) XML外部实体攻击也是常见的web漏洞之一,在学习这个漏洞之前有必要了解一下xml,可以参考w3c的基本 ...

随机推荐

  1. await和async在一般处理程序中的使用

    写在前面 有个小项目,前端使用的html页面,那服务端的业务处理就采用最简单的一般处理程序了,之前一直在用,觉得一直用一种方式,确实挺蛋疼的,之前也有了解过async和await的内容.就想着自己折腾 ...

  2. 学习实践之DEMO《nodejs模拟POST登陆》

    一个简单的PHP接收参数页面 <?php header("content-type:text/html;charset=utf-8"); if($_POST[username ...

  3. Apollo 5 教你怎么把自己的配置放到 Spring 环境中

    目录: 前言 处理方案 简单例子 前言 有的时候,你可能需要在 Spring 环境中放入一些配置,但这些配置无法写死在配置文件中,只能运行时放入.那么,这个时候该怎么办呢? Apollo 就是搞配置的 ...

  4. Maven deploy 部署 jar+pom 到 Nexus 私服

    经验之谈 工作中,我们常常需要将基础架构部门的 jar 包提供给业务部门的同事使用,那么,需要将 jar 包 deploy 到 nexus 私服上,网上资料不是很多,这里说一下具体细节. 首先,是打 ...

  5. 5步搭建GO环境

    Easy Go Programming Setup for Windows Dec 23, 2014 I’ve had to do this more than once recently, so I ...

  6. Extjs4.2+webAPI+EF实现分页以及webapi的数据传值(续)

    现在领导又要增加功能,需要分页的时候,每页显示N条信息.由于是每个页面都要改,所有需要声明了一个扩展类代码如下: // Copyright : 欧蓝德畅电子技术有限公司. All rights res ...

  7. 【Java】XML文件的解析

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  8. mysql允许所有机器访问

    1.进入到MySQL安装的bin目录. 2.运行mysql -uroot 3. 授权用户,你想root使用密码从任何主机连接到mysql服务器 GRANT ALL PRIVILEGES ON *.* ...

  9. js之搜索框

    目标效果:点击搜索框,搜索框内提示信息消失,可输入搜索信息,点击搜索框外搜索框如果没提示信息或者为空时,显示搜索框提示信息,如果有搜索信息,显示搜索信息. 代码如下: <!DOCTYPE htm ...

  10. 原生js 对象深拷贝

    经常需要copy一个对象,又怕拷贝有问题,那下面这段就很方便啦,不用担心copy只是一个引用了. /** @ values 需要copy的变量 */ function deepClone(values ...