当前位置:首页 > JavaScript

Js实现wordclock

2026-04-06 21:26:30JavaScript

JavaScript 实现 Word Clock

Word Clock 是一种以文字显示时间的时钟,通常将时间转换为自然语言描述。以下是使用 JavaScript 实现 Word Clock 的步骤。

初始化 HTML 结构

创建一个基本的 HTML 结构,包含一个用于显示 Word Clock 的容器。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Word Clock</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f0f0;
        }
        #wordClock {
            font-size: 24px;
            text-align: center;
        }
        .highlight {
            color: #ff0000;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div id="wordClock"></div>
    <script src="wordclock.js"></script>
</body>
</html>

创建 JavaScript 逻辑

wordclock.js 文件中实现 Word Clock 的核心逻辑。

document.addEventListener('DOMContentLoaded', function() {
    const wordClock = document.getElementById('wordClock');
    const words = [
        "IT", "IS", "HALF", "TEN",
        "QUARTER", "TWENTY", "FIVE", "MINUTES",
        "TO", "PAST", "ONE", "TWO",
        "THREE", "FOUR", "FIVE", "SIX",
        "SEVEN", "EIGHT", "NINE", "TEN",
        "ELEVEN", "TWELVE", "OCLOCK"
    ];

    function updateWordClock() {
        const now = new Date();
        const hours = now.getHours() % 12;
        const minutes = now.getMinutes();

        // Reset all words to default
        wordClock.innerHTML = words.map(word => 
            `<span class="word">${word}</span>`
        ).join(' ');

        // Highlight "IT IS"
        highlightWords(["IT", "IS"]);

        // Determine minutes
        if (minutes >= 5 && minutes < 10) {
            highlightWords(["FIVE", "MINUTES", "PAST"]);
        } else if (minutes >= 10 && minutes < 15) {
            highlightWords(["TEN", "MINUTES", "PAST"]);
        } else if (minutes >= 15 && minutes < 20) {
            highlightWords(["QUARTER", "PAST"]);
        } else if (minutes >= 20 && minutes < 25) {
            highlightWords(["TWENTY", "MINUTES", "PAST"]);
        } else if (minutes >= 25 && minutes < 30) {
            highlightWords(["TWENTY", "FIVE", "MINUTES", "PAST"]);
        } else if (minutes >= 30 && minutes < 35) {
            highlightWords(["HALF", "PAST"]);
        } else if (minutes >= 35 && minutes < 40) {
            highlightWords(["TWENTY", "FIVE", "MINUTES", "TO"]);
        } else if (minutes >= 40 && minutes < 45) {
            highlightWords(["TWENTY", "MINUTES", "TO"]);
        } else if (minutes >= 45 && minutes < 50) {
            highlightWords(["QUARTER", "TO"]);
        } else if (minutes >= 50 && minutes < 55) {
            highlightWords(["TEN", "MINUTES", "TO"]);
        } else if (minutes >= 55) {
            highlightWords(["FIVE", "MINUTES", "TO"]);
        }

        // Determine hours
        let hourWord;
        if (minutes >= 35) {
            hourWord = hours === 11 ? "TWELVE" : words[10 + (hours + 1)];
        } else {
            hourWord = hours === 0 ? "TWELVE" : words[10 + hours];
        }
        highlightWords([hourWord]);

        // Highlight "OCLOCK" if minutes < 5
        if (minutes < 5) {
            highlightWords(["OCLOCK"]);
        }
    }

    function highlightWords(wordsToHighlight) {
        const wordElements = document.querySelectorAll('.word');
        wordElements.forEach(el => {
            if (wordsToHighlight.includes(el.textContent)) {
                el.classList.add('highlight');
            }
        });
    }

    // Update every minute
    updateWordClock();
    setInterval(updateWordClock, 60000);
});

功能说明

  • 使用数组 words 存储所有可能的单词。
  • updateWordClock 函数根据当前时间计算需要高亮的单词。
  • highlightWords 函数负责高亮指定的单词。
  • 每分钟更新一次时钟显示。

自定义样式

通过修改 CSS 中的 .highlight 类,可以自定义高亮单词的样式。例如,更改颜色或字体大小。

Js实现wordclock

.highlight {
    color: #007bff;
    font-weight: bold;
}

扩展功能

  • 添加多语言支持,例如中文或西班牙语。
  • 引入动画效果,使单词高亮更加平滑。
  • 支持 24 小时制或自定义时间格式。

通过以上步骤,可以实现一个基本的 Word Clock,并根据需求进行扩展和定制。

标签: Jswordclock
分享给朋友:

相关文章

Js实现reset

Js实现reset

使用 HTMLFormElement.reset() 方法 通过 JavaScript 直接调用表单的 reset() 方法可以重置表单内的所有输入字段为初始值: document.getEleme…

Js实现对齐

Js实现对齐

使用CSS实现文本对齐 CSS提供了多种文本对齐方式,通过text-align属性可以轻松实现左对齐、右对齐、居中对齐和两端对齐。例如: .left-align { text-align: le…

Js实现wordclock

Js实现wordclock

实现 Word Clock 的基本思路 Word Clock 是一种以文字显示时间的时钟,例如 "IT IS HALF PAST TEN"。实现这种时钟需要将时间转换为对应的单词组合。 时间转换为单…

怎么用Js实现图片移动

怎么用Js实现图片移动

使用CSS和JavaScript实现图片移动 通过修改图片的CSS属性(如left、top或transform)可以实现图片移动效果。以下是两种常见方法: 方法一:通过修改left和top属性 假设…

Js实现划词翻译

Js实现划词翻译

划词翻译的实现思路 划词翻译功能可以通过监听用户鼠标选中文本的事件,获取选中的文本内容,然后调用翻译API进行翻译,最后将翻译结果显示在页面上。 获取选中文本 通过window.getSelecti…

Js实现reset

Js实现reset

重置表单元素 在JavaScript中重置表单可以通过调用表单元素的reset()方法实现。该方法会将所有表单控件恢复到初始值。 document.getElementById('myForm').…