JS实现定时器

简介: JS实现定时器

JS实现定时器

有趣的小案例池子:

JS实现定时器
JS实现关闭图片窗口
JS实现输入检验
获取焦点后隐藏提示内容的输入框
JS实现获取鼠标在画布中的位置
聊天信息框显示消息
JS点击切换背景图
自动切换背景的登录页面
JS制作跟随鼠标移动的图片
JS实现记住用户密码

案例分析

我们需要制作一个定时器,可以在屏幕上面显示的。

  1. 首先我们需要的是,在三个黑色的盒子里面显示时间。
  2. 然后设置自动变化,利用setInterval实现。
  3. 最后使用innerHTML在三个盒子中分别设置时分秒。

结果展示

构建框架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        <span class="hour">1</span>
        <span class="minute">2</span>
        <span class="second">3</span>
    </div>
</html>

CSS样式

<style>
        div {
            /* 把盒子设置到比较中间的位置 */
            margin-top: 200px;
            margin-left: 400px;
        }
        span {
            /* 设置成行内块元素 */
            display: inline-block;
            /* 设置盒子大小 */
            width: 40px;
            height: 40px;
            /* 设置背景颜色 */
            background-color: #333;
            /* 设置文字大小 */
            font-size: 20px;
            /* 设置文字颜色 */
            color: #fff;
            /* 设置文字居中 */
            text-align: center;
            /* 设置行高 */
            line-height: 40px;
        }
    </style>

JS逻辑

<script>
        // 1. 获取元素 
        var hour = document.querySelector('.hour'); // 小时的黑色盒子
        var minute = document.querySelector('.minute'); // 分钟的黑色盒子
        var second = document.querySelector('.second'); // 秒数的黑色盒子
        var inputTime = +new Date('2022-12-6 18:00:00'); // 返回的是用户输入时间总的毫秒数 这里需要的是,
        // 需要的是填写当前自己的电脑上的时间以后的时间,不然会很奇怪
        countDown(); // 我们先调用一次这个函数,防止第一次刷新页面有空白 
        // 2. 开启定时器
        setInterval(countDown, 1000);
        function countDown() {
            var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
            var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数 
            var h = parseInt(times / 60 / 60 % 24); //时
            h = h < 10 ? '0' + h : h;
            hour.innerHTML = h; // 把剩余的小时给 小时黑色盒子
            var m = parseInt(times / 60 % 60); // 分
            m = m < 10 ? '0' + m : m;
            minute.innerHTML = m; // 设置分钟
            var s = parseInt(times % 60); // 当前的秒
            s = s < 10 ? '0' + s : s;
            second.innerHTML = s;  // 设置秒数
        }
    </script>

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            /* 把盒子设置到比较中间的位置 */
            margin-top: 200px;
            margin-left: 400px;
        }
        span {
            /* 设置成行内块元素 */
            display: inline-block;
            /* 设置盒子大小 */
            width: 40px;
            height: 40px;
            /* 设置背景颜色 */
            background-color: #333;
            /* 设置文字大小 */
            font-size: 20px;
            /* 设置文字颜色 */
            color: #fff;
            /* 设置文字居中 */
            text-align: center;
            /* 设置行高 */
            line-height: 40px;
        }
    </style>
</head>
<body>
    <div>
        <span class="hour">1</span>
        <span class="minute">2</span>
        <span class="second">3</span>
    </div>
    <script>
        // 1. 获取元素 
        var hour = document.querySelector('.hour'); // 小时的黑色盒子
        var minute = document.querySelector('.minute'); // 分钟的黑色盒子
        var second = document.querySelector('.second'); // 秒数的黑色盒子
        var inputTime = +new Date('2022-12-6 18:00:00'); // 返回的是用户输入时间总的毫秒数 这里需要的是,
        // 需要的是填写当前自己的电脑上的时间以后的时间,不然会很奇怪
        countDown(); // 我们先调用一次这个函数,防止第一次刷新页面有空白 
        // 2. 开启定时器
        setInterval(countDown, 1000);
        function countDown() {
            var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
            var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数 
            var h = parseInt(times / 60 / 60 % 24); //时
            h = h < 10 ? '0' + h : h;
            hour.innerHTML = h; // 把剩余的小时给 小时黑色盒子
            var m = parseInt(times / 60 % 60); // 分
            m = m < 10 ? '0' + m : m;
            minute.innerHTML = m; // 设置分钟
            var s = parseInt(times % 60); // 当前的秒
            s = s < 10 ? '0' + s : s;
            second.innerHTML = s;  // 设置秒数
        }
    </script>
</body>
</html>
相关文章
|
3月前
|
JavaScript
JS定时器
JS定时器
23 0
|
4月前
|
JavaScript 前端开发 Java
JavaScript对象及定时器案例
JavaScript对象及定时器案例
44 0
|
7月前
|
JavaScript 前端开发
js 定时器
js 定时器
45 0
|
6月前
|
前端开发 JavaScript
前端基础 - JavaScript定时器
前端基础 - JavaScript定时器
37 0
|
2天前
|
JavaScript 前端开发
JavaScript如何设置定时器,怎么清除定时器
JavaScript如何设置定时器,怎么清除定时器
9 3
|
10天前
|
JavaScript 前端开发
JavaScript 定时器
JavaScript 定时器
|
1月前
|
JavaScript 前端开发
JS定时器与延时器
JS定时器与延时器
|
3月前
|
JavaScript 前端开发
JS实现可以控制的定时器,setInterval,clearInterval
JS实现可以控制的定时器,setInterval,clearInterval
20 0
|
3月前
|
前端开发 JavaScript 程序员
(前端面试题)详解 JS 的 setTimeout 和 setInterval 两大定时器
(前端面试题)详解 JS 的 setTimeout 和 setInterval 两大定时器
|
4月前
|
JavaScript 前端开发
javaScript_04 定时器
javaScript_04 定时器