在本文中,我们将深入探讨如何使用原生JavaScript实现一个简单的闹钟程序,让电脑成为您的贴心睡眠伴侣。这个闹钟程序允许用户设置特定的闹钟时间,并在指定时间到达时发出提醒,确保您不会错过任何重要的时刻。 我们需要创建HTML页面作为用户界面。HTML5提供了丰富的元素和API,使得构建这样的应用变得更加便捷。我们可以使用`<input>`元素创建时间选择器,让用户选择小时和分钟,如: ```html <label for="hour">小时:</label> <input type="number" id="hour" min="0" max="23"> <label for="minute">分钟:</label> <input type="number" id="minute" min="0" max="59"> <button id="setAlarm">设置闹钟</button> ``` 接下来,我们用JavaScript来处理用户的输入并设置闹钟。获取用户输入的小时和分钟,然后使用`Date`对象创建一个未来的时间点: ```javascript document.getElementById('setAlarm').addEventListener('click', function() { var hour = document.getElementById('hour').value; var minute = document.getElementById('minute').value; var alarmTime = new Date(); alarmTime.setHours(hour, minute, 0, 0); }); ``` 为了在指定时间触发闹钟,我们需要使用`setTimeout`函数。不过,由于JavaScript的异步特性,我们需要确保时间准确无误,因此可以这样设置: ```javascript var alarmTimeoutId; function setAlarm(alarmTime) { var currentTime = new Date(); var delay = (alarmTime - currentTime) + 1; // 防止小于0导致负数 alarmTimeoutId = setTimeout(function() { alert('闹钟响起!'); // 这里可以添加更复杂的提醒方式,比如播放音频 }, delay); } ``` 为了确保闹钟在页面刷新后仍然有效,我们可以利用`localStorage`存储闹钟时间。当页面加载时,检查是否有保存的闹钟并重新设置: ```javascript window.onload = function() { var savedAlarm = localStorage.getItem('alarmTime'); if (savedAlarm) { var alarmTime = new Date(savedAlarm); setAlarm(alarmTime); } }; function saveAlarm(alarmTime) { localStorage.setItem('alarmTime', alarmTime.toISOString()); } // 调整事件监听器,保存闹钟时间 document.getElementById('setAlarm').addEventListener('click', function() { var hour = document.getElementById('hour').value; var minute = document.getElementById('minute').value; var alarmTime = new Date(); alarmTime.setHours(hour, minute, 0, 0); setAlarm(alarmTime); saveAlarm(alarmTime); }); ``` 我们需要取消闹钟功能。这可以通过清除`setTimeout`的定时器来实现: ```javascript document.getElementById('cancelAlarm').addEventListener('click', function() { clearTimeout(alarmTimeoutId); localStorage.removeItem('alarmTime'); }); ``` 以上就是一个基本的原生JavaScript闹钟程序的实现。通过结合HTML5的表单元素、JavaScript的事件处理、时间和日期操作以及本地存储,我们创建了一个简单但实用的应用,能够帮助用户设置闹钟并在指定时间提醒他们。当然,实际应用可能需要考虑更多细节,比如错误处理、用户交互优化、音频播放等,但这个基础版本已经足够展示其核心功能。
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
- 1
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/82d3109dc544430ba096036029d7099f_daokedream.jpg!1)
- 粉丝: 542
- 资源: 32
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 智慧社区解决方案-6PPT(25页).pptx
- 40页-智慧社区一体化建设方案(重庆).pdf
- 智慧社区人脸识别整体解决方案Word(20页).doc
- 41页-智慧社区解决方案.pdf
- 智慧社区理念与解决方案介绍PPT(22页).pptx
- Springboot+vue的智能家居系统(有报告),Javaee项目,springboot vue前后端分离项目
- 智慧社区解决方案-10Word(253页).docx
- 智慧社区解决方案——智能安防建设解决方案PPT(69页).pptx
- Linux环境中Alist服务端安装与配置方法全解析
- Linux系统中JDK安装与环境配置教程
- 西门子PLC 200 Smart恒压供水编程之旅:昆仑通态触摸屏与ABB变频器参数设置实战学习视频分享,西门子PLC 200SMART恒压供水编程实战:昆仑通态触摸屏与ABB变频器参数设置学习指南及上
- 方钢管混凝土构件火灾、撞击与爆炸耦合模型解析视频教程:ABAQUS CAE+ODB应用实战,方钢管混凝土构件火灾、撞击与爆炸耦合模型解析教程:ABAQUS CAE+ODB应用详解,方钢管混凝土构件火灾
- 深度学习算法在噬菌体特异性蛋白质预测中的应用:完整代码实现与数据集分析,深度学习算法在噬菌体特异性蛋白质预测中的应用:完整代码实现与数据集分析,使用深度学习方法预测噬菌体特异性蛋白质完整代码实现,含数
- 基于国际大厂ADS1242的24bit二阶sigma delta ADC技术,应用于BIM的人体阻抗测量前端AFE芯片,采用smic55nm工艺,真实仿真非虚拟库实现 ,国际大厂ADS1242 AFE
- StarFree开源的简约唯美的论坛源码
- 基于布莱克曼窗的99阶FIR滤波器设计,实现50MHz采样频率下的1.5MHz通带滤波,图例展示滤波效果,Quartus仿真下的FIR滤波器设计:采用布莱克曼窗,99阶,50MHz采样频率与1.5MH
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)