倒计时模块复习

经典回顾倒计时

在这里插入图片描述
倒计时的基本布局介绍。
一个内容区域和一个输入区域,内容区域进行划分
在这里插入图片描述
直接使用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.mfbz.cn/a/228825.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第一课【习题】三方库

三方组件是开发者在系统能力的基础上进行了一层具体功能的封装&#xff0c;对其能力进行拓展的工具 。 可以通过ohpm uninstall 指令下载指定的三方库 lottie使用loadAnimation方法加载动画。 通过ohpm安装lottie后&#xff0c;在哪个文件中会生成相关的配置信息&#xf…

【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java入门到精通 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 一. Java语言概述与优势1.1 Java的概述1.2 Java语言的优势 二. Java领域与发展史2.1 Java的使用领域2.…

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

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

MDK官网如何下载stm32支持包

网站&#xff1a;https://www.keil.com/demo/eval/arm.htm 1 2 3点这个下载

数字图像处理(实践篇)十九 漫水填充

目录 一 漫水填充算法--FloodFill 二 涉及的函数 三 实践 一 漫水填充算法--FloodFill FloodFill漫水填充算法就是选中与种子点相连接的区域&#xff0c;利用指定颜色进行区域颜色填充。可以通过设置连通方式或像素的范围控制填充的效果。通常是用来标记或者分离图像的一部…

直流负载箱的技术发展趋势和创新有哪些?

直流负载箱广泛应用于电子、通信、航空航天等领域&#xff0c;随着科技的不断发展&#xff0c;直流负载箱也在不断创新和改进&#xff0c;直流负载箱在负载电流和电压的测量方面要求高精度和高稳定性。未来的发展趋势是提高负载箱的测量精度和稳定性&#xff0c;以满足更高要求…

你知道怎样在 Python 中管理内存吗

memray 是一个Python库&#xff0c;它提供了一种可视化内存管理工具&#xff0c;可以帮助Python开发人员更好地理解和优化他们的代码中的内存使用情况。 它是由彭博社开发的&#xff0c;可用于分析Python程序中的内存泄漏和其他内存问题。以下是memray库的使用场景和入门案例。…

ChatGPT可能即将发布新版本,带有debug功能:支持下载原始对话、可视化对话分支等

本文原文来自DataLearnerAI官方网站&#xff1a;ChatGPT内置隐藏debug功能&#xff1a;支持下载原始对话、可视化对话分支等 | 数据学习者官方网站(Datalearner) AIPRM的工作人员最近发现ChatGPT的客户端隐藏内置了一个新的debug特性&#xff0c;可以提高ChatGPT对话的问题调试…

【学习笔记】LLM for Education

ChatGPT has entered the classroom: how LLMs could transform education 前言IntroductionThe risks are realEmbracing LLMsIntroducing the AI tutorAugmenting retrievalWill it catch on?总结 前言 一篇来自Nature的文章&#xff0c;探讨了教育行业的不同参与者&#x…

harmony开发之Text组件的使用

TextInput、TextArea是输入框组件&#xff0c;通常用于响应用户的输入操作&#xff0c;比如评论区的输入、聊天框的输入、表格的输入等&#xff0c;也可以结合其它组件构建功能页面&#xff0c;例如登录注册页面。 图片来源黑马程序员 Text组件的使用&#xff1a; 文本显示组…

Elasticsearch:什么是检索增强生成 (RAG)?

检索增强生成 (RAG) 定义 检索增强生成 (RAG) 是一种利用来自私有或专有数据源的信息来补充文本生成的技术。 它将旨在搜索大型数据集或知识库的检索模型与大型语言模型 (LLM) 等生成模型相结合&#xff0c;后者获取该信息并生成可读的文本响应。 检索增强生成可以通过添加来…

STC15F100E单片机模拟串口

文章目录 一、芯片简介二、开发环境三、软件模拟串口参考 一、芯片简介 STC15F100系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机&#xff0c;新一代8051单片机&#xff0c;指令代码完全兼容传统8051&#xff0c;但是速度快6-12倍。 内部集成R/C时钟&#xff0c;5MHz…

Vue3拖拽功能【VueDraggablePlus】

一、介绍 由于 Sortablejs 的 vue3 组件一直没有更新&#xff0c;已经跟 vue3 严重脱节&#xff0c;所以诞生了这个项目&#xff0c;这个组件是基于 Sortablejs 的&#xff0c;所以如果你想了解更多关于 Sortablejs 的信息&#xff0c;可以查看Sortablejs 官网。VueDraggableP…

Markdown从入门到精通

Markdown从入门到精通 文章目录 Markdown从入门到精通前言一、Markdown是什么二、Markdown优点三、Markdown的基本语法3.1 标题3.2 字体3.3 换行3.4 引用3.5 链接3.6 图片3.7 列表3.8 分割线3.9 删除线3.10 下划线3.11 代码块3.12 表格3.13 脚注3.14 特殊符号 四、Markdown的高…

拼多多商品详情数据接口在数据分析行业的作用性

在数据分析行业中&#xff0c;拼多多商品详情数据的作用性主要体现在以下几个方面&#xff1a; 了解市场和用户需求&#xff1a;通过拼多多商品详情数据&#xff0c;企业可以了解到市场上什么产品受欢迎&#xff0c;用户对产品的反馈和评价如何&#xff0c;从而调整自己的销售…

js获取快递单号小练习

目录 1、css代码 2、html代码 3、js代码 完整代码 效果图 1、css代码 .box{width: 400px;height: 300px;margin: 100px auto;position: relative;}input{width: 250px;height: 40px;outline: none;}span{display: block;position: absolute;min-width: 270px;max-width: 40…

SpringBoot集成Spring Security+jwt+kaptcha验证(简单实现,可根据实际修改逻辑)

参考文章 【全网最细致】SpringBoot整合Spring Security JWT实现用户认证 需求 结合jwt实现登录功能&#xff0c;采用自带/login接口实现权限控制 熟悉下SpringSecurity SpringSecurity 采用的是责任链的设计模式&#xff0c;是一堆过滤器链的组合&#xff0c;它有一条很…

Centos7部署Graylog5.2日志系统

Graylog5.2部署 Graylog 5.2适配MongoDB 5.x~6.x&#xff0c;MongoDB5.0要求CPU支持AVX指令集。 主机说明localhost部署Graylog&#xff0c;需要安装mongodb-org-6.0、 Elasticsearch7.10.2 参考&#xff1a; https://blog.csdn.net/qixiaolinlin/article/details/129966703 …

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(一)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客&#xff0c;在读者的反馈中发现许多小伙伴对方言…
最新文章