【JavaScript】原生js中的定时器以及如何在实例中应用

news/2024/7/19 14:19:38 标签: js, javascript

定时器

setInterval:间隔型

setTimeout:延时型

<body>
    <input type="button" value="开启" id="btn1">
    <input type="button" value="关闭" id="btn2">
    <hr>
    <ol>
        <li>setInterval: 间隔型定时器</li>
        <li>clearInterval(): 用于关闭间隔型定时器</li>
        <li>setTimeout: 延时型定时器,只执行一次</li>
        <li>clearTimeout(): 用于关闭延时型定时器</li>
        <li>setInterval() 函数的返回值 timer 是定时器本身,可用作 clearInterval() 函数的参数</li>
    </ol>
    <script>
        window.onload = function () {
            var oBtn1 = document.getElementById('btn1');
            var oBtn2 = document.getElementById('btn2');
            var timer = null;
            oBtn1.onclick = function () {
                timer = setInterval(function () { //timer 的值为 setInterval() 的返回值
                    alert('Hello World!')
                }, 5000)
                console.log(timer)
            }
            oBtn2.onclick = function () {
                clearInterval(timer) // setInterval() 的返回值可用于关闭定时器
            }
        }
    </script>
</body>

Data对象

javascript"><script>
    var time = new Date();
    var year = time.getFullYear() //获取年份
    var month = time.getMonth()+1 //获取月份(0-11)
    var today = time.getDate() //获取日
    var week = time.getDay()  //获取周几
    var hour = time.getHours() //获取小时
    var minute = time.getMinutes() //获取分钟
    var second = time.getSeconds() //获取秒
</script>

实例:数码时钟

<body>
    <div id="div1"></div>
    <script>
        window.onload = function () {
            //补0
            function toDou(n) {
                if (n < 10) {
                    return '0' + n
                } else {
                    return n
                }
            }

            function tick() {
                var oDiv = document.getElementById('div1')
                var oDate = new Date();
                var str = toDou(oDate.getHours()) + ":" + toDou(oDate.getMinutes()) + ":" + toDou(oDate
                .getSeconds());
                oDiv.innerHTML = str
            }
            setInterval(tick, 1000)
            tick() //为了解决1s间隔
        }
    </script>
</body>

实例:延时提示框

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {float: left; margin: 10px;}
        #div1 {width: 100px; height: 100px; background: red;}
        #div2 {width: 300px; height: 600px; background: #ccc; display: none;}
    </style>
</head>

<body>
    <div id="div1"></div>
    <div id="div2"></div>
    <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)
            }
        }
        //优化版
        window.onload = function () {
            var oDiv1 = document.getElementById('div1');
            var oDiv2 = document.getElementById('div2');
            var timer = null;
            oDiv2.onmouseover = oDiv1.onmouseover = function () {
                oDiv2.style.display = 'block'
                clearTimeout(timer)
            }
            oDiv2.onmouseout = oDiv1.onmouseout = function () {
                timer = setTimeout(function () {
                    oDiv2.style.display = 'none'
                }, 500)

            }
        }
    </script>
</body>

http://www.niftyadmin.cn/n/497524.html

相关文章

【JavaScript】用原生js实现无缝滚动的实例

无缝滚动 功能&#xff1a;向左滑、向右滑、鼠标移入滑动暂停、鼠标移出滑动继续。 <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&l…

Android -- NestedScrolling滑动机制

1&#xff0c;如今NestedScrolling运用到很多地方了&#xff0c;要想好看一点的滑动变换&#xff0c;基本上就是使用这个来完成的&#xff0c;让我们来简单的了解一下。 2&#xff0c;NestedScrolling机制能够让父View和子View在滚动式进行配合&#xff0c;其基本流程如下&…

【JavaScript】一篇弄懂offsetWidth、offsetHeight、offsetleft、offsetTop和offsetParent

offsetWidth、offsetHeight offsetWidth&#xff1a;元素的布局宽度。 offsetHeight&#xff1a;元素的布局高度。 offsetWidth、offsetHeight 的计算&#xff1a;width/height padding border-width&#xff0c;受 box-sizing 影响。 <head><meta charset"UTF…

【JavaScript】DOM基础之节点、以及通过className获取元素

节点 childNodes <body><ul id"ul1"><li><span></span></li><li></li></ul><hr><ol><li>childNodes&#xff1a;子节点的集合</li><li>子节点是被选元素的第一层标签,span标签…

ECSHOP忘记密码的2种处理方法恢复管理权限

在我们使用ECSHOP的时候有的时候由于粗心&#xff0c;忘记后台管理员密码的时候也经常常见&#xff0c;这给我们带来不少问题&#xff0c;那么怎么来解决这个问题呢&#xff1f;方法有二&#xff1a;首先&#xff0c;第一种方法就是利用PHPMYADMIN登录ECSHOP的MYSQL数据库&…

【JavaScript】原生js中DOM操作之元素创建、插入和移除

创建元素 <body><input type"text" id"txt1"><input type"button" id"btn1" value"创建"><ul id"ul1"></ul><script>window.onload function () {var oUl document.getEl…

视频编辑软件EDIUS 6.02使用体会和功能、技巧介绍

我是在地方电视台工作的&#xff0c;过去几年我都是用canopus康能普视的dvrex做视频编辑&#xff0c;那是win2000平台下&#xff0c;很大的一张canopus康能普视的dvrex卡&#xff0c;很贵&#xff0c;后来购了康能普视dv1394卡和lets edit2软件&#xff0c;简单易用压缩速度快&…

EDIUS出错,打开后一直出现该内存不能为read

怎样设置虚拟内存&#xff1a;/&#xff08;一&#xff09;合理设置虚拟内存/虚拟内存的设定主要根据你的物理内存大小和电脑的用途来设定&#xff0c;在桌面上用鼠标右击“我的电脑”&#xff0c;选择“属性”&#xff0c;就可以看到内存了。根据微软公司的建议&#xff0c;虚…