当前位置:首页 > 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实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…