愚人节恶搞代码:系统错误倒计时与节日彩蛋动画

news/2025/3/28 14:10:38/文章来源:https://www.cnblogs.com/zhangapple/p/18791684

距离愚人节还有一周时间,在这个充满创意和恶搞的节日,作为一名站长,我们可以通过代码为网页添加一些有趣的互动效果。比如下面分享的一段JavaScript代码,可以帮助你在网页上创建一个逼真的系统错误画面,并在倒计时结束后显示一个彩蛋动画。让你的网站在愚人节当天给用户带来惊喜和乐趣!

原文可在线查看效果:愚人节恶搞代码-张苹果博客

网页中通过script引入下方链接即可使用。

<script src="https://img.zhangpingguo.com/web/xtcw/error.js"></script>

实现步骤

一,创建“系统错误”遮罩层

首先,创建一个全屏的遮罩层,模拟系统错误的效果。遮罩层包括警告图标、错误信息、倒计时和进度条。

const overlay = document.createElement('div');
overlay.id = 'shutdownOverlay';
overlay.style.display = 'none';
overlay.innerHTML = `<div class="bsod"><div class="warning"><div class="warning-icon">⚠️</div><h1>系统严重错误</h1><p>检测到不兼容的硬件驱动 (代码: 0xAPRIL_FOOL)</p><div class="countdown">00:05</div></div><div class="progress-bar"></div></div>
`;

二,添加样式动画

为了让遮罩层看起来更加逼真,为其添加样式,并定义一些动画效果,比如警告图标的脉冲动画和进度条的填充效果。

......具体代码下面都有了,这就不写了...

三,完整JS代码


(function() {// 创建系统错误遮罩层const overlay = document.createElement('div');overlay.id = 'shutdownOverlay';overlay.style.display = 'none';overlay.innerHTML = `<div class="bsod"><div class="warning"><div class="warning-icon">⚠️</div><h1>系统严重错误</h1><p>检测到不兼容的硬件驱动 (代码: 0xAPRIL_FOOL)</p><div class="countdown">00:05</div></div><div class="progress-bar"></div></div>`;Object.assign(overlay.style, {position: 'fixed',top: 0,left: 0,width: '100%',height: '100%',background: '#0078d4',color: 'white',zIndex: 99999,fontFamily: 'Segoe UI, sans-serif',display: 'flex',alignItems: 'center',justifyContent: 'center',flexDirection: 'column'});document.body.appendChild(overlay);// 创建样式const style = document.createElement('style');style.textContent = `@keyframes explode {0% { transform: scale(0); opacity: 1; }100% { transform: translate(${Math.random()*200-100}px, ${Math.random()*200-100}px) scale(3); opacity: 0; }}@keyframes float {0%, 100% { transform: translate(-50%, -55%); }50% { transform: translate(-50%, -45%); }}.warning {text-align: center;margin-bottom: 2rem;}.warning-icon {font-size: 5rem;animation: pulse 1s infinite;}.progress-bar {width: 300px;height: 3px;background: rgba(255,255,255,0.3);margin-top: 2rem;}.progress-bar::after {content: '';display: block;width: 0;height: 100%;background: white;transition: width 1s linear;}@keyframes pulse {0% { transform: scale(1); }50% { transform: scale(1.2); }100% { transform: scale(1); }}`;document.head.appendChild(style);// 倒计时逻辑let seconds = 5;const countdownElement = overlay.querySelector('.countdown');const progressBar = overlay.querySelector('.progress-bar');function formatTime(s) {return `00:${s.toString().padStart(2, '0')}`;}function startCountdown() {overlay.style.display = 'flex';const timer = setInterval(() => {seconds--;countdownElement.textContent = formatTime(seconds);progressBar.style.width = `${(5 - seconds) * 20}%`;if(seconds <= 0) {clearInterval(timer);showEasterEgg();}}, 1000);}// 彩蛋动画function showEasterEgg() {overlay.style.display = 'none';// 创建动画容器const animationContainer = document.createElement('div');Object.assign(animationContainer.style, {position: 'fixed',top: 0,left: 0,width: '100%',height: '100%',pointerEvents: 'none',zIndex: 100000});document.body.appendChild(animationContainer);// 添加节日文字const text = document.createElement('div');text.innerHTML = '🎉 愚人节快乐! 🎉';Object.assign(text.style, {position: 'absolute',top: '50%',left: '50%',transform: 'translate(-50%, -50%)',fontSize: '3.5rem',animation: 'float 2s ease-in-out infinite'});animationContainer.appendChild(text);// 添加烟花特效const colors = ['🎈', '🎊', '🎁', '✨', '💫'];for(let i=0; i<80; i++) {const emoji = document.createElement('div');emoji.textContent = colors[Math.floor(Math.random()*colors.length)];Object.assign(emoji.style, {position: 'absolute',left: `${Math.random()*100}%`,top: `${Math.random()*100}%`,fontSize: `${25 + Math.random()*30}px`,animation: `explode ${1.5 + Math.random()*2}s ease-out both`});animationContainer.appendChild(emoji);}// 3秒后同时消失setTimeout(() => {animationContainer.remove();}, 3000);}// 启动startCountdown()})();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/905507.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RFDN:用于轻量级图像超分辨率的残差特征蒸馏网络

在本文中,我们提出了一种**特征蒸馏连接(feature distillation connection FDC)**,它在功能上等同于通道分裂操作,同时更加轻量级和灵活。多亏了FDC,我们可以重新思考信息**多蒸馏网络(information multi-distillation network IMDN)**,并提出一个轻量级和准确的SISR模…

AI编程的 9 个大坑

原帖:[X@cj_zZZz](x.com) 我每天使用AI工具编程6-7小时。 在过去12个月里开发了超过36个项目。 事实是:用一个提示"给我构建...应用"是不可能的。 所以,以下是你在使用AI编程时可能犯的所有错误: 1. 没有规划 通过我的规划技巧,我能在几小时内从想法到一个写得很…

从按键到语音:家电设备交互的演进之旅

家电,在人们的日常生活中扮演着不可或缺的角色,也是提升人们幸福感的重要组成部分,那你了解家电的发展史吗? #70年代 结婚流行“四大件”:手表、自行车、缝纫机,收音机,合成“三转一响”。#80年代 随着改革开放的深化,中国经济开始飞速发展,黑白电视机、冰箱、洗衣机这…

Docker环境搭建与容器化入门实战——从虚拟机配置到应用部署

作者信息 姓名:林俊祥 专业:云计算技术应用 学号:23593107 技术方向:云平台搭建与部署 一、项目背景 本次实践基于Ubuntu系统,通过虚拟机环境完成Docker的完整部署流程,涵盖: 虚拟机创建与系统安装 SSH远程连接配置 Docker引擎安装与容器管理 应用容器化实战三、关键技术…

Vibe Coding彻底火了,到底什么是氛围编程?它如何改变未来的软件开发?

在过去十年间,低代码/无代码平台和 AI 代码助手持续冲击着软件开发行业。如今,一种被称为 Vibe Coding 的新兴实践突然走红,甚至颠覆了人们对"程序员到底在做什么"的认知。本篇文章将从定义到实践策略、从优势到局限性,全方位探讨 Vibe Coding 给软件开发带来的重…

知识蒸馏实战

蒸馏实战小实验 本实验相关代码已开源至github 失败经历 爱爱医数据蒸馏Qwen2.5-7B 1.用爬虫在爱爱医网站爬取1k条数据。(刚学一点爬虫,不会越过验证码,还是自己一次一次验证😅) 2.数据格式预处理,例如: {"instruction": "你需要基于我提供的患者病历,…

VLM-R1环境搭建推理测试

引子 前文也写了DeepSeek R1模型的安装测试,感兴趣的童鞋移步(https://blog.csdn.net/zzq1989_/article/details/145400876?spm=1001.2014.3001.5502)。那么在多模态方面R1方法(GRPO,Group Relative Policy Optimization)能不能用呢?毫无疑问,已经有不少人在尝试了。今…

振弦采集读数仪 智能型 支持振弦、温度、电压、电流测量,无线传输 自动化操作 适用地质灾害与土木工程监测

振弦采集读数仪 智能型 支持振弦、温度、电压、电流测量,无线传输 自动化操作 适用地质灾害与土木工程监测VH03 型多功能读数仪是一款专为多类型传感器设计的手持式读数设备,主要用于单弦式振弦传感器的测量,同时支持电压、电流传感器的辅助测量。设备采用高性能 32 位 ARM …

GoWebDAV,随时随地访问windows电脑上的文件

GoWebDAV使用 WebDAV 分享本地文件,轻量、易于使用English | 简体中文特性基于 Golang 实现,性能高。最终编译为单二进制文件,不需要 Apache 等环境,依赖少。支持浏览器访问。可以在同个端口下启用多个 WebDAV 服务,各自有不同的挂载目录、用户名密码。良好的 Docker 支持…

WPF MVVM入门系列教程(命令)

WPF中的命令模型 在WPF中,我们可以使用事件来响应鼠标和键盘动作。但使用事件会具备一定的局限性,例如:我想通过键盘快捷键触发事件、或者在某个时刻禁用事件。如果使用代码去编写这些控制逻辑,会变得非常枯燥。因此WPF提供了命令模型。 命令具有多个用途。 第一个用途是分…

【读文总结】transformers circuits 随笔

【读文总结】transformers circuits 随笔内容有点太多,先截图一份 contents对 transformers 结构的重刻划 一种常见的 decoder only 的 transformer 结构如下。但是我们可以把这个 residual stream 的线抻直,将这个过程视为 transformer layer 对 residual stream 中所包含的…

vue+leaflet示例:结合geoserver实现地图空间查询(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…