JavaScript實現的計時器效果

之前做過電商網站倒計時的效果,今天在倒計時的基礎上,把代碼修改了一下,改為計時器效果,實現了以下功能:
1.點擊“開始”后,按秒計時且“開始”文字變為“停止”;
2.點擊“停止”,計時停止,文字變為“開始”;
3.再點擊“開始”,計時器從0開始重新計時。
效果如圖所示:
在這里插入圖片描述
“開始”和“停止”使用div標記實現,利用innerHTML改變其中的文字內容。

<div class="startTime">開始</div>  <!-- 單擊開始,再單擊停止 -->
<div class="dispTime"></div>  <!-- 顯示計時器的部分 -->

在這里插入圖片描述
完整代碼如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>計時器</title><style type="text/css">.startTime {cursor: pointer;font-size: 30px;border: 1px solid #ccc;border-radius: 10px;width: 120px;margin: 10px auto;text-align: center;}.startTime:hover{background-color: aliceblue;}.dispTime {position: absolute;font-size: 60px;left: 50%;top: 30%;transform: translate(-50%, -50%);color:red;}</style></head><body><div class="startTime">開始</div>  <!-- 單擊開始,再單擊停止 --><div class="dispTime"></div>  <!-- 顯示計時器的部分 --><script>var startTime = document.querySelector('.startTime');var dispTime = document.querySelector('.dispTime');var times =0;             //全局變量,從0開始計時,初始值為0var timer = null;         //全局變量,初始值為空startTime.addEventListener('click', function(){if(this.innerHTML=='開始'){times = 0;                 //清除之前的時間,從0開始重新 計時timer = setInterval(countTime, 1000);     //開啟定時器,前面不能加關鍵字var ,那會變成局部變量,定時器不能清除,不會從0開始this.innerHTML='停止';   //文本設置為停止}else{clearInterval(timer);       //停止定時器this.innerHTML='開始';      //文本設置為開始}});//countTime()函數把總秒數顯示為時、分、秒效果function countTime() {var hh = parseInt(times / 60 / 60 );hh = hh < 10 ? '0' + hh : hh;var mm = parseInt(times / 60 % 60);mm = mm < 10 ? '0' + mm : mm;var ss = parseInt(times % 60);ss = ss < 10 ? '0' + ss : ss;dispTime.innerHTML=  hh + ':' + mm + ':' + ss;times++;}</script></body>
</html>

在這段代碼中,剛開始實現的時候,沒有把timer設置為全局變量,而是在函數中使用了var關鍵字,這樣timer是局部變量,結果定時器無法停止。后來去掉關鍵字var,timer成為全局變量好了,于是最后把timer放在函數外,直接定義為全局變量,這樣程序可讀性好一些。

		var  timer = setInterval(countTime, 1000);   

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

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

相關文章

https【詳解】與http的區別,對稱加密,非對稱加密,證書,解析流程圖

http 和 https 的區別 http 是明文傳輸&#xff0c;敏感信息容易在傳輸過程中被劫持https http加密&#xff0c;劫持了也無法解密 https 用到的加密方式 https 同時使用了對稱加密和非對稱加密&#xff0c;之所以沒有全部使用非對稱加密&#xff0c;是因為非對稱加密的運算更加…

JavaScript:export 和 export default

文章目錄 exportexport defaultexport 和 export default都使用 在JavaScript ES6的模塊系統中&#xff0c;export 和 export default 都是用來導出模塊中對外可見的變量、函數、類或對象的語法&#xff0c;但是它們的作用和使用方式有所不同&#xff1a; export export 關鍵字…

四種垃圾回收算法

1.標記清除算法 該算法先標記&#xff0c;后清除&#xff0c;將所有需要回收的算法進行標記&#xff0c;然后清除&#xff1b;這種算法的缺點是&#xff1a;效率比較低&#xff1b;標記清除后會出現大量不連續的內存碎片&#xff0c;這些碎片太多可能會使存儲大對象會觸發GC回…

【設計模式】觀察者模式及函數式編程的替代C++

本文介紹觀察者模式以及使用函數式編程替代簡單的策略模式。 觀察者模式 觀察者模式是一種行為型設計模式&#xff0c;它定義了一種一對多的依賴關系&#xff0c;當一個對象的狀態發生改變時&#xff0c;其所有依賴者都會收到通知并自動更新。 當對象間存在一對多關系時&#…

Spring中Bean的作用域、實例化方式、生命周期、循環依賴問題

Spring中Bean的作用域、實例化方式、生命周期、循環依賴問題 一、Bean的作用域1.singleton2.prototype3.其他scope值 二、Bean的實例化方式1.通過構造方法實例化2.通過簡單工廠模式實例化3.通過factory-bean實例化4.通過FactoryBean接口實例化5.BeanFactory和FactoryBean的區別…

【大廠AI課學習筆記NO.60】(13)模型泛化性的評價

我們學習了過擬合和欠擬合&#xff0c;具體見我的文章&#xff1a;https://giszz.blog.csdn.net/article/details/136440338 那么今天&#xff0c;我們來學習模型泛化性的評價。 泛化性的問題&#xff0c;我們也討論過了&#xff0c;那么如何評價模型的泛化性呢&#xff1f; …

激光SLAM技術助力富唯智能復合機器人的應用場景無限拓展

隨著科技的不斷進步&#xff0c;智能機器人已成為現代工業、服務、醫療等多個領域的重要角色。而在這一變革中&#xff0c;激光SLAM技術發揮著至關重要的作用。特別是對于富唯智能復合機器人來說&#xff0c;激光SLAM技術不僅提升了其智能化水平&#xff0c;更使其應用場景變得…

esp3455235

在這里插入代碼片gdasgdsfgdfh dfahahdfh

【促銷定價】背后的算法技術3-數據挖掘分析

【促銷定價】背后的算法技術3-數據挖掘分析 01 整體分析1&#xff09;整體概覽2&#xff09;類別型特征概覽3&#xff09;數值型特征概覽 02 聚合分析1&#xff09;天維度2&#xff09;品維度3&#xff09;價格維度4&#xff09;數量維度 03 相關分析1&#xff09;1級品類2&…

無公網ip環境使用DS file軟件遠程訪問內網群暉NAS中儲存的文件

文章目錄 1. 群暉安裝Cpolar2. 創建TCP公網地址3. 遠程訪問群暉文件4. 固定TCP公網地址5. 固定TCP地址連接 DS file 是一個由群暉公司開發的文件管理應用程序&#xff0c;主要用于瀏覽、訪問和管理存儲在群暉NAS&#xff08;網絡附加存儲&#xff09;中的文件。這個應用程序具有…

echarts如何實現3D餅圖(環形圖)?

一、實現的效果 二、具體步驟 1.安裝依賴 npm install echarts 2.引入echarts import * as echarts from echarts; 注意&#xff1a;這里需要用到echarts-gl&#xff0c;必須單獨引入才可以 import echarts-gl; 3.echarts部分代碼 我知道這部分內容很多&#xff0c;但只要cv…

社情民意調查的內容

本文由群狼調研&#xff08;長沙社情民意調查&#xff09;出品&#xff0c;歡迎轉載&#xff0c;請注明出處。社情民意調查的內容通常包括以下幾個方面&#xff1a; 1.社會熱點問題&#xff1a;針對當前社會熱點問題進行調查&#xff0c;收集公眾對該問題的態度和看法&#xf…

羊大師揭秘羊奶與健康,美味的保健佳品

羊大師揭秘羊奶與健康&#xff0c;美味的保健佳品 羊奶確實是一種美味且健康的保健佳品&#xff0c;其獨特的營養成分和風味使其成為許多人的健康選擇。以下是一些羊奶與健康的關系&#xff1a; 營養豐富&#xff1a;羊奶含有豐富的蛋白質、脂肪、礦物質和維生素&#xff0c;…

ruoyi-nbcio-plus的Vue3前端升級組件后出現的問題(一)

更多ruoyi-nbcio功能請看演示系統 gitee源代碼地址 前后端代碼&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能請看演示系統 gitee源代碼地址 后端代碼&#xff1a; https://gitee.com/nbach…

大模型ChatGLM-6B實現本地部署

大模型ChatGLM-6B實現本地部署 一、寫在前面&#xff1a;二、ChatGLM-6B下載&#xff1a;三、項目所需要的環境配置&#xff1a;四、項目運行&#xff1a;五、遇到的主要問題及解決 一、寫在前面&#xff1a; 1、 確保你的電腦中已安裝git&#xff0c;git lfs。 2、確保你的電…

淺析前端的堆棧原理以及深淺拷貝原理

淺析前端的堆棧原理以及深淺拷貝原理 首先來看一個案例 const obj {name:hzw,age:18 } let objName2 obj objName2.age 12 console.log(obj,objName2) // {name: hzw, age: 12} {name: hzw, age: 12}這里是不是很奇怪&#xff0c;為什么&#xff0c;為什么我改變objName2的…

Hierarchical Text-ConditionalImage Generation with CLIP Latents筆記

1 Title Hierarchical Text-Conditional Image Generation with CLIP Latents&#xff08;Aditya Ramesh、Prafulla Dhariwal、Alex Nichol、Casey Chu、Mark Chen&#xff09; 2 Conclusion Contrastive models like CLIP have been shown to learn robust representations …

read()函數

read() 函數用于從文件描述符&#xff08;通常是套接字、文件等&#xff09;讀取數據。 #include <unistd.h>ssize_t read(int fd, void *buf, size_t count);fd&#xff1a; 是文件描述符&#xff0c;可以是套接字、文件等。 buf&#xff1a; 是一個指向要讀取數據的緩…

AirPods Pro 2 耳機推送新固件,蘋果Find My功能助力產品成長

蘋果公司面向 AirPods Pro 2&#xff08;包括 USB-C 和 Lightning 版本&#xff09;&#xff0c;推出了全新的測試版固件更新&#xff0c;版本號為 6E188&#xff0c;高于 12 月份發布的 6B34 固件。 蘋果和往常一樣&#xff0c;并沒有提供詳細的更新日志或者說明&#xff0c…

算法刷題day20:二分

目錄 引言概念一、借教室二、分巧克力三、管道四、技能升級五、冶煉金屬六、數的范圍七、最佳牛圍欄 引言 這幾天一直在做二分的題&#xff0c;都是上了難度的題目&#xff0c;本來以為自己的二分水平已經非常熟悉了&#xff0c;沒想到還是糊涂了一兩天才重新想清楚&#xff0…