倒計時模塊復習

經典回顧倒計時

在這里插入圖片描述
倒計時的基本布局介紹。
一個內容區域和一個輸入區域,內容區域進行劃分
在這里插入圖片描述
直接使用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 = 0const date1 = new Date()enddate = +new Date(`${date1.getFullYear()}-${date1.getMonth()+1}-${date1.getDate()} ${input.value}`)time = (enddate - nowdate) / 1000let 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 : sdocument.querySelector('.hour').innerHTML = hdocument.querySelector('.min').innerHTML = mdocument.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.valuedateChat()setInterval(dateChat, 1000)}}})const button = document.querySelector('button')button.addEventListener('click', function () {if (input.value.length > 8) {alert('輸入有誤')} else {document.querySelector('.timeout').innerHTML = input.valuedateChat()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 = 0const date1 = new Date()enddate = +new Date(`${date1.getFullYear()}-${date1.getMonth()+1}-${date1.getDate()} ${input.value}`)time = (enddate - nowdate) / 1000let 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 : sdocument.querySelector('.hour').innerHTML = hdocument.querySelector('.min').innerHTML = mdocument.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.valuedateChat()setInterval(dateChat, 1000)}}})const button = document.querySelector('button')button.addEventListener('click', function () {if (input.value.length > 8) {alert('輸入有誤')} else {document.querySelector('.timeout').innerHTML = input.valuedateChat()setInterval(dateChat, 1000)}})// 倒計時模塊</script>
</body></html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208328.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208328.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208328.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MES管理系統通過哪些方面提升產品質量管理水平

在當今高度競爭的市場環境中&#xff0c;質量成為了企業生存和發展的關鍵因素。工廠作為生產產品的核心場所&#xff0c;其質量管理水平直接影響到產品的質量和企業的聲譽。為了應對這一挑戰&#xff0c;許多工廠引入了MES管理系統解決方案。本文將探討MES管理系統如何幫助工廠…

【UE5】監控攝像頭效果(上)

目錄 效果 步驟 一、視角切換 二、攝像頭畫面后期處理 三、在場景中顯示攝像頭畫面 效果 步驟 一、視角切換 1. 新建一個Basic關卡&#xff0c;添加第三人稱游戲資源到項目瀏覽器 2. 新建一個Actor藍圖&#xff0c;這里命名為“BP_SecurityCamera” 打開“BP_Securit…

模電筆記。。。。

模電 2.8 蜂鳴器 按照蜂鳴器驅動方式分為有源蜂鳴器和無源蜂鳴器 有源的有自己的震蕩電路&#xff0c;無源的要寫代碼控制。 里面有個線圈&#xff0c;相當于電感&#xff0c;儲能&#xff0c;通直隔交。 蜂鳴器的參數&#xff1a;額定電壓&#xff0c;工作電壓&#xff0…

【CCF-B】1/2區,錄用見刊極快!2個月錄用!

計算機類 ? 好刊解讀 今天小編帶來Taylor and Francis旗下計算機領域快刊&#xff0c;CCF-B類推薦的期刊解讀&#xff0c;期刊審稿周期短&#xff0c;投稿友好&#xff0c;如您有投稿需求&#xff0c;可作為重點關注&#xff01;后文有相關領域真實發表案例&#xff0c;供您投…

防水,也不怕水。Mate X5是如何做到讓你濕手濕屏也不影響操作的?

相信不少人都碰到過當手機屏幕存在小水珠時&#xff0c;觸控變得不靈敏&#xff0c;或者出現“幽靈觸屏”&#xff0c;指東打西的情況。 尤其是在洗澡、做飯&#xff0c;或者在戶外遇到下雨天氣時&#xff0c;如果打濕的手機收到重要聊天消息或者電話&#xff0c;卻因為濕屏導…

TS學習——面向對象

面向對象是程序中一個非常重要的思想&#xff0c;它被很多同學理解成了一個比較難&#xff0c;比較深奧的問題&#xff0c;其實不然。面向對象很簡單&#xff0c;簡而言之就是程序之中所有的操作都需要通過對象來完成。 舉例來說&#xff1a; 操作瀏覽器要使用window對象操作網…

生成fip.bin在Milkv-duo上跑rtthread的相關嘗試,及其問題分析

前言 &#xff08;1&#xff09;PLCT實驗室實習生長期招聘&#xff1a;招聘信息鏈接 &#xff08;2&#xff09;本來是想在Milkv-duo上跑rtthread的&#xff0c;做了很多努力&#xff0c;一直沒有結果。雖然不知道最終能不能成功做出來&#xff0c;還是把自己的相關努力分享出來…

MDK官網如何下載stm32支持包

網站&#xff1a;https://www.keil.com/demo/eval/arm.htm 1 2 3點這個下載

基于Mint Mate 21.2 Victoria 的Anjuta安裝與測試

序言 Linux mint mate 21.2 命名為 victoria 版&#xff0c;在vmware虛擬機中安裝按提示默認安裝即可&#xff0c;不做更多記錄。mint mate的優點是穩定&#xff0c;窗口質感好。安裝完成后&#xff0c;需要關注一些常用功能配置。主要有&#xff1a;顯示器調整、桌面調整、工…

當然熱門的原創改寫改寫大全【2023最新】

在信息時代&#xff0c;隨著科技的不斷發展&#xff0c;改寫軟件逐漸成為提高文案質量和寫作效率的重要工具。本文將專心分享一些好用的改寫軟件&#xff0c;其中包括百度文心一言智能寫作以及147SEO改寫軟件。這些工具不僅支持批量改寫&#xff0c;而且在發布到各大平臺后能夠…

python爬取 HTTP_2 網站超時問題的解決方案

問題背景 在進行網絡數據爬取時&#xff0c;使用 Python 程序訪問支持 HTTP/2 協議的網站時&#xff0c;有時會遇到超時問題。這可能會導致數據獲取不完整&#xff0c;影響爬蟲程序的正常運行。 問題描述 在實際操作中&#xff0c;當使用 Python 編寫的爬蟲程序訪問支持 HTT…

使用高防IP防護有哪些優勢

高防IP是針對互聯網服務器在遭受大流量的DDoS攻擊后導致服務不可用的情況下&#xff0c;推出的付費增值服務&#xff0c;用戶可以通過配置高防IP&#xff0c;將攻擊流量引流到高防IP&#xff0c;確保源站的穩定可靠。高防IP相當于搭建完轉發的服務器。 高防IP有兩種接入方式&a…

Notepad安裝

中文免安裝版&#xff0c;下載解壓即可。 NotepadV7.5.6 (訪問密碼: 1666)https://url48.ctfile.com/f/33868548-986668939-7a3316?p1666

Node-RED 設置登錄權限

Node-RED 提供了內置的 “adminAuth” 功能&#xff0c;使你能夠通過用戶名和密碼來保護對 Node-RED 編輯器的訪問。本文將向你展示如何配置登錄權限&#xff0c;以及一些相關的最佳實踐。以下是設置登錄權限的步驟&#xff1a; 步驟一&#xff1a;配置 AdminAuth 在 Node-RE…

react Hooks實現原理

Fiber 上篇文章fiber簡單理解記錄了react fiber架構&#xff0c;Hooks是基于fiber鏈表來實現的。閱讀以下內容時建議先了解react fiber。 jsx -> render function -> vdom -> fiber樹 -> dom vdom 轉 fiber 的過程稱為 recocile。diff算法就是在recocile這個過程…

LVS-DR+Keepalived+動靜分離實驗

架構圖 解釋一下架構&#xff0c;大概就是用Keepalived實現兩臺DR服務器的LVS負載均衡&#xff0c;然后后端服務器是兩臺Nginx服務器兩臺Tomcat服務器并且實現動靜分離這個實驗其實就是把 LVS-DRKeepalived 和 動靜分離 給拼起來&#xff0c;真的是拼起來&#xff0c;兩個部分…

在SQLServer中,把一個表的字段更新到另一個表中

在SQLServer中&#xff0c;把一個表的字段更新到另一個表中&#xff0c;應該如何實現? 你可以使用 UPDATE 語句結合 JOIN 來將一個表中的字段更新到另一個表中。假設你有兩個表&#xff0c;稱為 table1 和 table2&#xff0c;你想從 table1 中更新 table2&#xff0c;可以像這…

Rtrofit+Rxjava網絡請求封裝

好幾年前封裝的框架一直沒上傳&#xff0c;趁現在升級寫下。 簡介Retrofit是android的網絡請求庫&#xff0c;是一個RESTful的HTTP網絡請求框架的封裝&#xff08;基于okhttp&#xff09;。它內部網絡請求的工作&#xff0c;本質上是通過OkHttp完成&#xff0c;而Retrofit僅負責…

JVM虛擬機:執行Java程序并指定JVM參數

本文重點 在前面我們設置參數值的時候&#xff0c;需要在eclipse中的VM中進行參數設置&#xff0c;查詢的時候需要先jps&#xff0c;然后jinfo。這里嘗試動態的設置和查詢&#xff0c;也就是說在運行程序的時候就對其進行設置&#xff0c;并且進行查詢。 過程 為了確定參數修…

微信個人號機器人開發

簡要描述&#xff1a; 取消消息接收 請求URL&#xff1a; http://域名地址/cancelHttpCallbackUrl 請求方式&#xff1a; POST 請求頭Headers&#xff1a; Authorization&#xff1a;login接口返回Content-Type&#xff1a;application/json 無參數 返回數據&#xff…