当前位置:首页 > JavaScript

js实现闹钟

2026-01-30 21:03:05JavaScript

使用JavaScript实现闹钟功能

基础HTML结构

创建一个简单的HTML页面,包含时间显示和闹钟设置控件:

js实现闹钟

<!DOCTYPE html>
<html>
<head>
    <title>JavaScript闹钟</title>
    <style>
        #clock {
            font-size: 48px;
            margin: 20px;
        }
        .alarm-controls {
            margin: 20px;
        }
    </style>
</head>
<body>
    <div id="clock"></div>
    <div class="alarm-controls">
        <input type="time" id="alarmTime">
        <button id="setAlarm">设置闹钟</button>
        <button id="stopAlarm" disabled>停止闹铃</button>
    </div>
    <audio id="alarmSound" src="alarm.mp3" loop></audio>
</body>
</html>

JavaScript核心逻辑

// 获取DOM元素
const clockElement = document.getElementById('clock');
const alarmTimeInput = document.getElementById('alarmTime');
const setAlarmButton = document.getElementById('setAlarm');
const stopAlarmButton = document.getElementById('stopAlarm');
const alarmSound = document.getElementById('alarmSound');

// 更新时钟显示
function updateClock() {
    const now = new Date();
    const hours = String(now.getHours()).padStart(2, '0');
    const minutes = String(now.getMinutes()).padStart(2, '0');
    const seconds = String(now.getSeconds()).padStart(2, '0');
    clockElement.textContent = `${hours}:${minutes}:${seconds}`;
}

// 检查闹钟时间
function checkAlarm() {
    const alarmTime = alarmTimeInput.value;
    if (!alarmTime) return;

    const now = new Date();
    const currentHours = String(now.getHours()).padStart(2, '0');
    const currentMinutes = String(now.getMinutes()).padStart(2, '0');
    const currentTime = `${currentHours}:${currentMinutes}`;

    if (currentTime === alarmTime) {
        alarmSound.play();
        stopAlarmButton.disabled = false;
    }
}

// 事件监听
setAlarmButton.addEventListener('click', () => {
    if (!alarmTimeInput.value) {
        alert('请设置闹钟时间');
        return;
    }
    alert(`闹钟已设置为 ${alarmTimeInput.value}`);
});

stopAlarmButton.addEventListener('click', () => {
    alarmSound.pause();
    alarmSound.currentTime = 0;
    stopAlarmButton.disabled = true;
});

// 初始化
setInterval(() => {
    updateClock();
    checkAlarm();
}, 1000);
updateClock();

功能增强建议

添加多个闹钟功能:

js实现闹钟

const alarms = [];

function addAlarm(time) {
    alarms.push(time);
    renderAlarms();
}

function renderAlarms() {
    const alarmsList = document.getElementById('alarmsList');
    alarmsList.innerHTML = alarms.map(alarm => `
        <div class="alarm-item">
            <span>${alarm}</span>
            <button onclick="removeAlarm('${alarm}')">删除</button>
        </div>
    `).join('');
}

添加闹钟重复选项:

<select id="alarmRepeat">
    <option value="once">仅一次</option>
    <option value="daily">每天</option>
    <option value="weekdays">工作日</option>
</select>

注意事项

确保有有效的音频文件(如alarm.mp3)放在同一目录下 考虑使用Web Notification API在闹钟响起时显示桌面通知 对于移动端使用,需要添加适当的响应式设计 可以添加本地存储功能,保存用户设置的闹钟

这个实现提供了基本的闹钟功能,可以根据需要进一步扩展和完善。核心逻辑是通过定时器每秒检查当前时间是否与设定的闹钟时间匹配,匹配时触发音频播放。

标签: 闹钟js
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…