This time I will bring you an in-depth introduction to JavaScript timers. What are the precautions for using JavaScript timers? The following is a practical case, let’s take a look.
Get the year, month, day, week, hour, minute and second<script> var date = new Date() date.getFullYear(); //2017 年 date.getMonth(); // 5 注意:月份是个诡异的东西,他是从0开始计算的,故+1才等于正常的月份 date.getDate(); //11 日 date.getDay(); //星期 美国的星期是从星期日开始的,故0为星期日,1为星期一,...6为星期六 date.getHours(); //时 date.getMinutes(); //分 date.getSeconds(); //秒 </script>
setTimeout Delay type: How much delay ms execution
setTimeout delay type, only executed once
<script> function show() { alert('定时器'); }// setInterval(show,1000); // 一秒执行一次 setTimeout(show,1000); //延时一秒执行 </script>
var btn1 = document.getElementById('btn1');var btn2 = document.getElementById('btn2');var i = 0;var timer = null; btn1.onclick = function () { //开启定时器 timer = setInterval(function () { i++; alert(i); },1000); }
btn2.onclick = function () { i = 0; clearInterval(timer); }
str[0];不兼容低版本浏览器,如IE7等; var a = 'abcdef';alert(a[0]); str.charAt(0); 兼容各种浏览器 var a = 'abcdef';a.charAt(0); //兼容各种浏览器
<html lang="en"><head> <meta charset="UTF-8"> <title>数字时钟</title> <style> body{ background-color: black; font-size: 50px; color: white; } </style> <script> window.onload = function () { var aImg = document.getElementsByTagName('img'); function tick() { var date = new Date(); //把时间拼接成一个字符串,如:212835; //toDouble()这个函数,是为了把单数转换成双位数,如,9转换成09 var sTime = toDouble(date.getHours()) + toDouble(date.getMinutes()) + toDouble(date.getSeconds()); for (var i=0;i<aImg.length;i++){ aImg[i].src = 'image/'+sTime.charAt(i)+'.png'; } } setInterval(tick,1000); tick(); //由于setInterval会延时1000ms执行,所以为了防止每次刷新页面时,页面上显示00:00:00的情况,调用下此函数 } //把获取的时/分/秒 转换成双位数 function toDouble(n) { if (n<10){ return '0' + n; }else { return '' +n;//前面的'',是为了把数字转换成字符串 } } </script></head><body>![](image/0.png) ![](image/0.png) : ![](image/0.png) ![](image/0.png) : ![](image/0.png) ![](image/0.png)</body></html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>07-延时提示框</title> <style> div{float: left;margin-left: 20px;} #div1{width: 50px;height: 50px;background-color: red;} #div2{ width: 200px;height: 200px;background-color: #ccc;display: none;} </style> <script> window.onload = function () { var oDiv1 = document.getElementById('div1'); var oDiv2 = document.getElementById('div2'); var timer = null; oDiv1.onmouseover = function () { oDiv2.style.display = 'block'; clearTimeout(timer); //清除延时器 } 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); } } </script> </head> <body> <div id="div1"></div> <div id="div2"></div> </body> </html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>07-延时提示框</title> <style> div{float: left;margin-left: 20px;} #div1{width: 50px;height: 50px;background-color: red;} #div2{ width: 200px;height: 200px;background-color: #ccc;display: none;} </style> <script> window.onload = function () { var oDiv1 = document.getElementById('div1'); var oDiv2 = document.getElementById('div2'); var timer = null; //简化代码,合并两个相同的mouseover oDiv2.onmouseover = oDiv1.onmouseover = function () { oDiv2.style.display = 'block'; clearTimeout(timer); } //简化代码,合并两个相同的mouseout oDiv2.onmouseout = oDiv1.onmouseout = function () { timer = setTimeout(function () { oDiv2.style.display = 'none'; },500); } } </script> </head> <body> <div id="div1"></div> <div id="div2"></div> </body> </html>
<html><head><meta charset="utf-8"><title>无缝滚动</title><style>* {margin:0; padding:0;}#div1 {width:712px; height:108px; margin:100px auto; position:relative; background:red; overflow:hidden;}#div1 ul {position:absolute; left:0; top:0;}#div1 ul li {float:left; width:178px; height:108px; list-style:none;}</style><script>window.onload=function (){ var oDiv=document.getElementById('div1'); var oUl=oDiv.getElementsByTagName('ul')[0]; var aLi=oUl.getElementsByTagName('li'); var speed=-2; //oUl.innerHTML=oUl.innerHTML+oUl.innerHTML; oUl.innerHTML+=oUl.innerHTML; oUl.style.width=aLi[0].offsetWidth*aLi.length+'px'; //offsetWidth :(width+padding+border) 当前对象的宽度。 //offsetLeft 当前对象到其上级层左边的距离。 function move(){ //往左滚动 if(oUl.offsetLeft<-oUl.offsetWidth/2) { oUl.style.left='0'; } //往右滚动 if(oUl.offsetLeft>0) { oUl.style.left=-oUl.offsetWidth/2+'px'; } //offsetLeft 距离父元素左侧距离 oUl.style.left=oUl.offsetLeft+speed+'px'; } //定时器 var timer=setInterval(move, 30); oDiv.onmouseover=function () { clearInterval(timer); }; oDiv.onmouseout=function () { timer=setInterval(move, 30); }; //往左滚动 document.getElementsByTagName('a')[0].onclick=function () { speed=-2; }; //往右滚动 document.getElementsByTagName('a')[1].onclick=function () { speed=2; }; };</script></head><body><a href="javascript:;">向左走</a><a href="javascript:;">向右走</a><div id="div1"> <ul> <li>![](img2/1.jpg)</li> <li>![](img2/2.jpg)</li> <li>![](img2/3.jpg)</li> <li>![](img2/4.jpg)</li> </ul></div></body></html>
In-depth basic application of JavaScript
The above is the detailed content of In-depth JavaScript timer. For more information, please follow other related articles on the PHP Chinese website!