今天给大家伙儿分享一下我搞的文字时钟屏保,这玩意儿说起来也不难,就是有点费眼睛,不过效果是真的酷炫!
起因:
之前在网上瞎逛,看到有人搞了个文字时钟,就是那种用文字来显示时间的屏保,当时就觉得贼有意思,立马就想着自己也做一个。正好最近有点空闲时间,就琢磨着把它给实现了。
准备工作:
- 一台电脑(废话!)
- 一个趁手的文本编辑器(我用的 VS Code)
- 一点点 HTML、CSS 和 JavaScript 基础(不会也没事,跟着我一步一步来)
开始动手:
1. HTML 骨架:
咱们先创建一个 HTML 文件,就叫 `*` ,然后把基本的 HTML 骨架搭起来。主要就是一个 `div` 用来放文字时钟的内容:
2. CSS 美化:
光有骨架不行,还得给它穿上衣服。创建一个 `*` 文件,简单地美化一下页面,让文字时钟居中显示,字体大一点,颜色醒目一点:
body { background-color: #000; / 背景黑色 / color: #fff; / 文字白色 / font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; / 充满整个屏幕 / margin: 0; #clock { font-size: 5em; / 文字大小 / text-align: center;
3. JavaScript 核心逻辑:
重头戏来了!创建一个 `*` 文件,用 JavaScript 来获取当前时间,然后把时间转换成文字,显示在页面上。这里需要动点脑筋,把数字和对应的文字关联起来:
const clockElement = *('clock'); function updateClock() { const now = new Date(); const hours = *(); const minutes = *(); const seconds = *(); const hourText = convertNumberToChinese(hours); const minuteText = convertNumberToChinese(minutes); const secondText = convertNumberToChinese(seconds); * = `现在是:${hourText}时${minuteText}分${secondText}秒`; function convertNumberToChinese(number) { const chineseNumbers = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十", "三十一", "三十二", "三十三", "三十四", "三十五", "三十六", "三十七", "三十八", "三十九", "四十", "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十", "五十一", "五十二", "五十三", "五十四", "五十五", "五十六", "五十七", "五十八", "五十九"]; return chineseNumbers[number]; setInterval(updateClock, 1000); // 每秒更新一次 updateClock(); // 初始加载时更新一次
这段代码的关键在于 `convertNumberToChinese` 函数,它把数字转换成对应的中文。这里我偷了个懒,直接用了一个数组来存储中文数字,大家可以根据自己的需求进行修改。
4. 设置为屏保:
光有网页还不行,还得把它设置为屏保。这个就稍微麻烦一点,需要用到一些工具。我用的是一个叫 "Web Screensaver" 的软件,可以直接把网页设置为屏保,网上搜一下就能找到,安装也很简单,这里就不细说了。
遇到的坑:
- 中文显示乱码: 刚开始搞的时候,中文显示出来全是乱码,后来发现是 HTML 文件的字符集设置有问题,改成 `UTF-8` 就好了。
- 屏保黑屏: 设置为屏保后,有时候会黑屏,后来发现是 CSS 样式的问题,把 `height: 100vh;` 改成 `height: 100%;` 就解决了。
最终效果:
搞完之后,效果还是相当不错的,每次电脑闲置的时候,屏幕上就会显示出当前时间的中文文字,感觉贼有逼格!
这回搞文字时钟屏保,主要是想折腾一下,顺便复习一下 HTML、CSS 和 JavaScript 的基础知识。虽然过程有点曲折,但是最终还是成功了。希望我的分享能给大家带来一些启发,也欢迎大家一起交流学习!
PS:
代码比较简单,大家可以自行修改,比如换个字体,改个颜色,甚至可以加上农历显示,让屏保更有个性!
希望这个分享能帮到大家,下次再见!