倒计时模块复习

news2024/11/27 16:37:59

经典回顾倒计时

在这里插入图片描述
倒计时的基本布局介绍。
一个内容区域和一个输入区域,内容区域进行划分
在这里插入图片描述
直接使用flex布局会更快一点。
js代码
我们利用一下模块化思想,直接把获得时间这个功能写成一个函数。方便后续的调用

function getTime() {
            const date = new Date()
            return `今年是${date.getFullYear()}${date.getMonth()+1}${date.getDate()}`
        }
        document.querySelector('.contain-top').innerHTML = getTime()

然后将输入框中的事件给加载进去,注意格式的划分。使用基本的时间算法

const input = document.querySelector('input')
        function dateChat() {
            const nowdate = +new Date()
            let enddate = +new Date()
            let time = 0
            const date1 = new Date()
            enddate = +new Date(`${date1.getFullYear()}-${date1.getMonth()+1}-${date1.getDate()} ${input.value}`)
            time = (enddate - nowdate) / 1000
            let h = parseInt(time / 60 / 60 % 24)
            h = h < 10 ? '0 ' + h : h + " "
            let m = parseInt(time / 60 % 60)
            m = m < 10 ? '0 ' + m : m + " "
            let s = parseInt(time % 60)
            s = s < 10 ? '0' + s : s
            document.querySelector('.hour').innerHTML = h
            document.querySelector('.min').innerHTML = m
            document.querySelector('.second').innerHTML = s
        }

设置回车监听和按钮监听

input.addEventListener('keyup', function (e) {
            if (e.key === 'Enter') {
                if (input.value.length > 8) {
                    alert('输入有误')
                } else {
                    document.querySelector('.timeout').innerHTML = input.value
                    dateChat()
                    setInterval(dateChat, 1000)
                }
            }
        })
        const button = document.querySelector('button')
        button.addEventListener('click', function () {
            if (input.value.length > 8) {
                alert('输入有误')
            } else {
                document.querySelector('.timeout').innerHTML = input.value
                dateChat()
                setInterval(dateChat, 1000)
            }
        })

完整代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>倒计时</title>
    <style>
        * {
            padding: 0;
            margin: 0;
            box-sizing: border-box;
        }

        .contain {
            width: 300px;
            height: 300px;
            background-color: rgb(174, 10, 42);
            margin: 0 auto;
        }

        .contain-top {
            text-align: center;
            color: white;
            padding-top: 20px;
            margin-bottom: 20px;
        }

        .font {
            text-align: center;
            color: white;
            font-size: 25px;
        }

        .contain-middle-time {
            display: flex;
            justify-content: center;
        }

        .contain-middle-time div {
            text-align: center;
            margin-top: 40px;
            width: 40px;
            line-height: 40px;
            height: 40px;
            color: white;
            background-color: rgb(50, 44, 44);
            border-radius: 5px;
        }

        .contain-middle-time .word {
            width: 20px;
            height: 20px;
            color: white;
            background-color: rgb(174, 10, 42);
        }

        .timeout {
            margin-top: 60px;
            font-size: 20px;
            color: white;
            text-align: center;
        }

        .timeout::after {
            content: "下课";
        }

        .timechoice {
            margin-top: 10px;
            text-align: center;
        }

        input {
            outline: none;
            text-align: center;
            width: 100px;
            height: 20px;
            border: 1px solid black;
            border-radius: 3px;
        }

        button {
            background-color: white;
            height: 20px;
            border: none;
            color: black;
            border-radius: 2px;
        }

        button:active {
            color: red;
        }
    </style>
</head>

<body>
    <div class="contain">
        <div class="contain-top">
            今年是2222年2月22日
        </div>
        <div class="font">
            下班倒计时
        </div>
        <div class="contain-middle-time">
            <div class="hour">
                12
            </div>
            <div class="word">:</div>
            <div class="min">
                12
            </div>
            <div class="word">:</div>
            <div class="second">
                12
            </div>
        </div>
        <div class="timeout">
            18 : 30 : 00
        </div>
    </div>
    <div class="timechoice">
        <input type="text" placeholder="18:00:00">
        <button>提交</button>
    </div>
    <script>
        //加载上边的时间
        function getTime() {
            const date = new Date()
            return `今年是${date.getFullYear()}${date.getMonth()+1}${date.getDate()}`
        }
        document.querySelector('.contain-top').innerHTML = getTime()

        // 加载定义的下课时间
        const input = document.querySelector('input')
        function dateChat() {
            const nowdate = +new Date()
            let enddate = +new Date()
            let time = 0
            const date1 = new Date()
            enddate = +new Date(`${date1.getFullYear()}-${date1.getMonth()+1}-${date1.getDate()} ${input.value}`)
            time = (enddate - nowdate) / 1000
            let h = parseInt(time / 60 / 60 % 24)
            h = h < 10 ? '0 ' + h : h + " "
            let m = parseInt(time / 60 % 60)
            m = m < 10 ? '0 ' + m : m + " "
            let s = parseInt(time % 60)
            s = s < 10 ? '0' + s : s
            document.querySelector('.hour').innerHTML = h
            document.querySelector('.min').innerHTML = m
            document.querySelector('.second').innerHTML = s
        }
        input.addEventListener('keyup', function (e) {
            if (e.key === 'Enter') {
                if (input.value.length > 8) {
                    alert('输入有误')
                } else {
                    document.querySelector('.timeout').innerHTML = input.value
                    dateChat()
                    setInterval(dateChat, 1000)
                }
            }
        })
        const button = document.querySelector('button')
        button.addEventListener('click', function () {
            if (input.value.length > 8) {
                alert('输入有误')
            } else {
                document.querySelector('.timeout').innerHTML = input.value
                dateChat()
                setInterval(dateChat, 1000)
            }
        })
        // 倒计时模块

    </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1296038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用pytorch查看中间层特征矩阵以及卷积核参数

这篇是我对哔哩哔哩up主 霹雳吧啦Wz 的视频的文字版学习笔记 感谢他对知识的分享 1和4是之前讲过的alexnet和resnet模型 2是分析中间层特征矩阵的脚本 3是查看卷积核参数的脚本 1设置预处理方法 和图像训练的时候用的预处理方法保持一致 2实例化模型 3载入之前的模型参数 4载入…

智能优化算法应用:基于驾驶训练算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于驾驶训练算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于驾驶训练算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.驾驶训练算法4.实验参数设定5.算法结果6.参考…

带大家做一个,易上手的家常辣子鸡

先从冰箱拿出鸡肉解冻 拿小半根葱 去掉最外面一层皮 切成小段 最备好 花椒 干辣椒 准备四五个大料 起锅烧油 这道菜需要放其他菜两到三倍的油 油温上来之后 放入干辣椒和花椒进行翻炒 等它们都烧黑之后捞出来 这样 辣味就留在油里面了 然后 倒入鸡肉 葱段 大料 然后 倒…

从0到1,手把手带你开发截图工具ScreenCap------001实现基本的截图功能

ScreenCap---Version&#xff1a;001 说明 从0到1&#xff0c;手把手带你开发windows端的截屏软件ScreenCap 当前版本&#xff1a;ScreenCap---001 支持全屏截图 支持鼠标拖动截图区域 支持拖拽截图 支持保存全屏截图 支持另存截图到其他位置 GitHub 仓库master下的Scr…

如何排查rpc mount export: RPC: Timed out问题

文章目录 问题描述查看nfs服务是否运行正常如果以上都通过,尝试下面步骤 问题描述 我们将讨论您在 NFS 客户端上看到的 NFS 错误之一的故障排除。在尝试与 NFS 相关的命令时可以看到此错误&#xff0c;如下所示&#xff1a; 通常&#xff0c;当您看到此错误时&#xff0c;您也…

整合消息队列RabbitMQ

为什么使用消息队列MQ&#xff1f; 因为使用消息队列有多个好处&#xff1a;可以实现系统服务的解耦、异步和削峰&#xff1a; 异步通信&#xff1a;消息队列提供了一种异步通信的方式&#xff0c;发送方可以将消息发送到队列中&#xff0c;然后继续执行其他任务&#xff0c;…

vue使用甘特图dhtmlxgantt + gantt.addTaskLayer

效果图&#xff1a; 甘特图 官网地址 gantt安装与使用 vue版---部分功能收费 安装gantt 或 引入文件 npm install dhtmlx-gantt -save或import gantt from "/public/static/dhtmlxgantt/dhtmlxgantt.js"; import "/public/static/dhtmlxgantt/locale/local…

Pytest+Yaml+Excel 接口自动化测试框架的实现示例

一、框架架构 二、项目目录结构 三、框架功能说明 解决痛点&#xff1a; 通过session会话方式&#xff0c;解决了登录之后cookie关联处理框架天然支持接口动态传参、关联灵活处理支持Excel、Yaml文件格式编写接口用例&#xff0c;通过简单配置框架自动读取并执行执行环境一键…

python3.5安装教程及环境配置,python3.7.2安装与配置

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python3.5安装教程及环境配置&#xff0c;python3.7.2安装与配置&#xff0c;现在让我们一起来看看吧&#xff01; python 从爬虫开始&#xff08;一&#xff09; Python 简介 首先简介一下Python和爬虫的关系与概念&am…

深度学习实战65-人脸检测模型LFFD的搭建,LFFD模型的架构与原理的详细介绍

大家好,我是微学AI,今天给大家介绍一下深度学习实战65-人脸检测模型LFFD的搭建,LFFD模型的架构与原理的详细介绍。LFFD(Light and Fast Face Detector)模型是一种用于人脸检测的深度学习模型,其设计旨在实现轻量级和快速的人脸检测。本文将详细介绍LFFD模型的定义、优点、原…

类人智能体概念、能力与衍生丨AI Agents闭门研讨观点集锦

导读 在智源社区举办的「青源Workshop第27期&#xff1a;AI Agents 闭门研讨会」上&#xff0c;来自英伟达的高级应用科学家王智琳、CAMEL一作李国豪、AutoAgents一作陈光耀&#xff0c;以及相关技术专家们共同参与交流讨论&#xff0c;分享了最新的研究成果&#xff0c;共同探…

人工麝香市场分析:中国市场年需求量超过15吨

人工麝香作为濒危动物药材麝香的替代品&#xff0c;等同天然麝香配方使用。 是国家重大科研成果和保密品种&#xff0c;用人工麝香生产中成药品种近400种&#xff0c;涵盖中成药常用剂型。 是珍稀动物药材代用品研究的重大突破&#xff0c;为其它珍稀动物药材的应用开辟了一条重…

金融量化交易:使用Python实现遗传算法

大家好&#xff0c;遗传算法是一种受自然选择过程启发的进化算法&#xff0c;用于寻找优化和搜索问题的近似解决方案。本文将使用Python来实现一个用于优化简单交易策略的遗传算法。 1.遗传算法简介 遗传算法是一类基于自然选择和遗传学原理的优化算法&#xff0c;其特别适用…

【方法】Excel表格的“限制保护”不想要了,如何取消?

我们知道&#xff0c;Excel表格可以设置“限制保护”&#xff0c;保护文件不被随意更改&#xff0c;那如果后续不需要保护了&#xff0c;如何取消呢&#xff1f; 下面小编来说说Excel表格常用的三种“保护”&#xff0c;是如何取消的。 第一种&#xff0c;Excel表格的工作表或…

第15章:随堂复习与企业真题(File类与IO流)

第15章&#xff1a;随堂复习与企业真题&#xff08;File类与IO流&#xff09; 一、随堂复习 1. File类的使用 File类的一个实例对应着磁盘上的一个文件或文件目录。 ----> “万事万物皆对象”&#xff08;熟悉&#xff09;File的实例化、常用的方法File类中只有新建、删除…

Unity 自定义窗口

放在Editor文件夹下&#xff1b; #if UNITY_EDITORusing System; using UnityEditor; using UnityEngine;namespace EditorCustumTool {/// <summary>/// 自定义窗口/// </summary>public class CustomWindow : EditorWindow{public enum FlagType{Flag1 101,Fl…

Qt内存管理、UI编辑器、客制化组件、弹出对话框、常用部件类

头文件的小技巧 #include <QtWidgets> // 在自动生成的 .h 里面加上此句 适用条件&#xff1a; QT 的内存管理 当父窗体被关闭时&#xff0c;子部件的内存会自动释放。 对象树是一种管理对象生命周期的机制。当一个对象被添加到另一个对象的子对象列表中时&#xff0…

Springboot+AOP+注解实现字段AES+Base64加解密

AOP实现AESBASE64加解密 场景如下&#xff1a; 需要对数据库存储的字段&#xff0c;进行加解密的处理。如果都直接写代码的话&#xff0c;那么代码回冗余很多&#xff0c;所以使用AOP注解去实现。让代码简洁&#xff0c;方便 具体实现如下&#xff1a; 1、依赖 <depende…

C语言搭建项目-学生管理系统(非链表)

、 目录 搭建offer.h文件 搭建offer.c中的main函数 密码登入系统 搭建my_oferr.c中的接口函数 使用帮助菜单接口函数 增加学生信息接口函数 查询学生信息接口函数 删除学生信息接口函数 保存学生信息接口 打开文件fopen 关闭文件fclose 判断是否保存文件fwrite 退出执行文件…

TCP传输层详解(计算机网络复习)

介绍&#xff1a;TCP/IP包含了一系列的协议&#xff0c;也叫TCP/IP协议族&#xff0c;简称TCP/IP。该协议族提供了点对点的连接机制&#xff0c;并将传输数据帧的封装、寻址、传输、路由以及接收方式都予以标准化 TCP/IP的分层模型 在讲TCP/IP协议之前&#xff0c;首先介绍一…