祝天下老师教师节快乐-HTML+java script

 

效果图

  1. 🚀HTML结构揭秘🚀:

    • 📝<head>中包含了元信息和样式表。

    • 🖼️<body>拥有一个<canvas>元素与一个.text类的<div>,为星空与教师节信息搭建舞台。

  2. 🎨CSS魔法调色盘🎨:

    • 🌑背景深邃的黑色,奠定星空基调。

    • .text类让祝福语居中闪烁,加上阴影特效,确保在星光中夺目。

  3. 🤖JavaScript功能拆解🤖:

    • 💡初始化:画布尺寸设定,获取绘图上下文。

    • 🌠Star类:星点随机闪烁,颜色变换,绘制夜空的每一颗星。

    • 💨MeteorRain类:流星雨的绚丽登场,从初始化到动态绘制,每一颗流星都有其独特轨迹。

  4. 🎭动画效果背后的逻辑🎭:

    • 🌑星空:遍历星体数组,draw方法重现浩瀚星河。

    • ✨流星雨:动态更新位置与透明度,每一次移动都是一次视觉盛宴。

  5. 💡细节巧思💡:

    • 🌟星体颜色随机变换,流星长度、速度、角度各异,造就独一无二的夜空景象。

    • 🕰️定时器setTimeout精心调校,星空与流星雨动画流畅不卡顿。

  6. 🌟用户体验升级🌟:

    • 🌌动画平滑,祝福语清晰可读,星空下的信息传递温暖而有力。

    • 🎧虽未在代码中体现,加入背景音乐或月亮相伴,定能让视觉盛宴更添几分感动。


代码如下

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>教师节快乐</title><style type="text/css">body {background-color: black;z-index: 1;}body, html {width: 100%;height: 100%;overflow: hidden;}.text {color: white;font-size: 20px;text-align: center;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 333;font-family: "微软雅黑";font-weight: bold;line-height: 1.5;width: 80%;animation: blink 1s infinite;animation-timing-function: linear;animation-direction: alternate;animation-iteration-count: infinite;animation-delay: 0.5s;animation-fill-mode: forwards;animation-play-state: running;box-shadow: inset 0 0 10px white;text-shadow: 0 0 10px white;font-size: 20px;}@keyframes blink {0% {opacity: 1;}50% {opacity: 0;}100% {opacity: 1;}}</style>
</head>
<body><canvas id="stars"></canvas><div class="text">何老师,教师节快乐!您是明星,照亮了我前行的路。愿您的生活如星河般璀璨,幸福绵长。感谢您的指引,让梦想绽放如星辰,您是我心中永恒的北极星。</div><script>var context;var arr = [];var starCount = 800;var rains = [];var rainCount = 20;function init() {var stars = document.getElementById("stars");windowWidth = window.innerWidth;stars.width = windowWidth;stars.height = window.innerHeight;context = stars.getContext("2d");}var Star = function () {this.x = windowWidth * Math.random();this.y = 5000 * Math.random();this.text = ".";this.color = "white";this.getColor = function () {var _r = Math.random();if (_r < 0.5) {this.color = "#333";} else {this.color = "white";}}this.init = function () {this.getColor();}this.draw = function () {context.fillStyle = this.color;context.fillText(this.text, this.x, this.y);}}function drawMoon() {var moon = new Image();moon.src = "./images/moon.jpg";moon.onload = function() {context.drawImage(moon, -5, -10);}}var MeteorRain = function () {this.x = -1;this.y = -1;this.length = -1;this.angle = 30;this.width = -1;this.height = -1;this.speed = 1;this.offset_x = -1;this.offset_y = -1;this.alpha = 1;this.color1 = "";this.color2 = "";this.init = function () {this.getPos();this.alpha = 1;this.getRandomColor();var x = Math.random() * 80 + 150;this.length = Math.ceil(x);this.angle = 30;x = Math.random() + 0.5;this.speed = Math.ceil(x);var cos = Math.cos(this.angle * Math.PI / 180);var sin = Math.sin(this.angle * Math.PI / 180);this.width = this.length * cos;this.height = this.length * sin;this.offset_x = this.speed * cos;this.offset_y = this.speed * sin;}this.getRandomColor = function () {var a = Math.ceil(255 - 240 * Math.random());this.color1 = "rgba(" + a + "," + a + "," + a + ",1)";this.color2 = "black";}this.countPos = function () {this.x = this.x - this.offset_x;this.y = this.y + this.offset_y;}this.getPos = function () {this.x = Math.random() * window.innerWidth;this.y = Math.random() * window.innerHeight;}this.draw = function () {context.save();context.beginPath();context.lineWidth = 1;context.globalAlpha = this.alpha;var line = context.createLinearGradient(this.x, this.y, this.x + this.width, this.y - this.height);line.addColorStop(0, "white");line.addColorStop(0.3, this.color1);line.addColorStop(0.6, this.color2);context.strokeStyle = line;context.moveTo(this.x, this.y);context.lineTo(this.x + this.width, this.y - this.height);context.closePath();context.stroke();context.restore();}this.move = function () {context.clearRect(this.x + this.width - this.offset_x, this.y - this.height, this.offset_x + 5, this.offset_y + 5);this.countPos();this.alpha -= 0.002;this.draw();}}window.onload = function () {init();for (var i = 0; i < starCount; i++) {var star = new Star();star.init();star.draw();arr.push(star);}for (var i = 0; i < rainCount; i++) {var rain = new MeteorRain();rain.init();rain.draw();rains.push(rain);}drawMoon();playStars();playRains();}function playStars() {for (var n = 0; n < starCount; n++) {arr[n].getColor();arr[n].draw();}setTimeout(playStars, 100);}function playRains() {for (var n = 0; n < rainCount; n++) {var rain = rains[n];rain.move();if (rain.y > window.innerHeight) {context.clearRect(rain.x, rain.y - rain.height, rain.width, rain.height);rains[n] = new MeteorRain();rains[n].init();}}setTimeout(playRains, 2);}</script>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络:物理层 --- 基本概念、编码与调制

目录 一. 物理层的基本概念 二. 数据通信系统的模型 三. 编码 3.1 基本概念 3.2 不归零制编码 3.3 归零制编码 3.4 曼切斯特编码 3.5 差分曼切斯特编码 ​编辑 四. 调制 4.1 调幅 4.2 调频 4.3 调相 4.4 混合调制 今天我们讲的是物理…

利士策分享,中日核污染水排海问题共识背后的深思

利士策分享&#xff0c;中日核污染水排海问题共识背后的深思 近日&#xff0c;中日两国在应对福岛第一核电站核污染水排放问题上达成了重要共识&#xff0c;这一进展无疑值得肯定。 然而&#xff0c;这背后所引发的关于金钱、责任与利益的讨论&#xff0c;却值得我们深入探究。…

【解决】chrome 谷歌浏览器,鼠标点击任何区域都是 Input 输入框的状态,能看到输入的光标

chrome 谷歌浏览器&#xff0c;鼠标点击任何区域都是 Input 输入框的状态&#xff0c;能看到输入的光标 今天打开电脑的时候&#xff0c;网页中任何文本的地方&#xff0c;只要鼠标点击&#xff0c;就会出现一个输入的光标&#xff0c;无论在哪个站点哪个页面都是如此。 我知道…

【练习15】拼三角

链接&#xff1a;A-拼三角_牛客小白月赛32 (nowcoder.com) 分析&#xff1a; 三角形的三个边a、b、c必须满足条件&#xff1a;ab>c,ac>b,bc>a 可以先将输入的六个数按从小到大排序&#xff0c;然后再枚举。 因为已经排好序了&#xff0c;如果第一行ab<c&#xff0c…

YOLOv8改进,YOLOv8替换主干网络为VanillaNet( CVPR 2023 华为提出的全新轻量化架构),大幅度涨点

改进前训练结果: 改进后训练结果: 摘要 基础模型的核心理念是“更多即不同”,这一理念在计算机视觉和自然语言处理领域取得了惊人的成功。然而,变压器模型的优化挑战和固有复杂性呼唤一种向简化转变的范式。在本研究中,引入了VanillaNet,一种拥抱设计优雅的神经网络架构…

2024年中国研究生数学建模竞赛A题“风电场有功功率优化分配”全析全解

问题一&#xff1a; 针对问题一&#xff0c;可以采用以下低复杂度模型&#xff0c;来计算风机主轴及塔架的疲劳损伤累积程度。 建模思路&#xff1a; 累积疲劳损伤计算&#xff1a; 根据Palmgren-Miner线性累积损伤理论&#xff0c;元件的疲劳损伤可以累积。因此&#xff0c;…

基于SpringBoot+Vue的商城积分系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目源码、Python精…

回归预测 | Matlab实现INFO-HKELM向量加权算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现INFO-HKELM向量加权算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现INFO-HKELM向量加权算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现INFO-HKELM向量加权算法优化混合核极…

JAVA连接世界驾驭未来国际版二手车交易市场系统小程序源码

&#x1f697;【连接世界&#xff0c;驾驭未来 —— 探索国际版二手车交易市场系统】&#x1f697; &#x1f30d; 开篇&#xff1a;梦想无界&#xff0c;车行天下 &#x1f30d; 在这个日新月异的时代&#xff0c;我们对未来的憧憬不再局限于脚下的土地。你是否曾梦想过&…

【d46】【Java】【力扣】876.链表的中间结点

思路 先获得总体长度&#xff0c; 再得到中间节点 的索引&#xff0c;&#xff0c;这里的索引是从1开始的索引&#xff0c;而不是从0开始的索引(这种理解方式更简单) 排错&#xff1a;另一个思路&#xff1a;将链表都放进list&#xff0c;获得中间的数字&#xff0c;然后遍历…

【滑动窗口】算法总结

文章目录 滑动窗口算法总结1.暴力求解vs滑动窗口2.需要注意的细节问题 2.滑动窗口的基本模板1.非固定窗口大小的滑动窗口2.固定窗口大小的滑动窗口细节 滑动窗口算法总结 1.暴力求解vs滑动窗口 遇到那些可以转化成一个子数组的长度的问题时&#xff0c;往往需要用到双指针。 …

(undone) 声音信号处理基础知识(2)

来源&#xff1a;https://www.youtube.com/watch?vbnHHVo3j124 复习物理知识&#xff1a; 声音由物体的振动产生 物体振动会导致空气分支振荡 某一处的空气气压变化会创造一个波 声音是机械波 空气的振荡在空间中传递 能量从空间中的一个点到另一个点 机械波需要媒介&#x…

中国电子学会202406青少年软件编程(Python)等级考试试卷(四级)真题

青少年软件编程(Python)等级考试试卷(四级)2024-6 一、单选题(共25题, 共50分) 1.执行以下程序后所输出的结果是?( ) A 20 B 41 C 21 D 91 2.以下说法错误的是?( ) A python中可以在不同的自定义函数中声明相同名字的变量,使用时不会造成数据混…

前端框架Vue、React、Angular、Svelte对比

在对比 React、Vue.js、Angular 和 Svelte 时&#xff0c;除了在高层次的特性上有显著差异&#xff0c;它们在核心设计理念和底层实现机制上也有明显的不同。为了清晰地理解这些框架&#xff0c;我们可以从以下几个方面来分析它们的核心不同点和底层不同点。 1. 框架类型和设计…

【学习笔记】STM32F407探索者HAL库开发(四)F103时钟系统配置

【学习笔记】STM32F407探索者HAL库开发&#xff08;四&#xff09;F103时钟系统配置 1 STM32F1时钟树1.1 STM32F103时钟系统图1.2 STM32F103时钟树简图1.2.1 高速部分1.2.2 低速部分 1.3 函数配置1.4 时钟输出1.5 STM32CubeMX时钟树配置F11.6 时钟系统对与嵌入式开发的重要性 1…

Qt-QLabel 添加图片并设置 GIF 图动态效果

Qt-QLabel 添加图片并设置 GIF 图动态效果 一、添加图片资源并设置图片 选择标签&#xff0c;拖拉到界面上&#xff0c;然后选择器属性 picmap   选择设置&#xff0c;在这里添加图片资源   点击左边的加号符号按钮添加前缀&#xff0c;并设置前缀名&#xff0c;如果已经…

Nginx静态资源优化、压缩、缓存处理

一、静态资源优化配置语法 Nginx对静态资源如何进行优化配置。这里从三个属性配置进行优化&#xff1a; sendfile on; tcp_nopush on; tcp_nodeplay on; &#xff08;1&#xff09;sendfile&#xff0c;用来开启高效的文件传输模式。 语法sendfile on |off;默认值sendfile …

奥比中光深度相机相关使用内容

奥比中光深度相机相关使用内容 Windows平台测试官方软件关于python环境的配置1、安装CMake2、安装Visual Studio3、项目地址下载4、配置Visual Studio5、完成基于Python的SDK配置官网教学视频地址 3D视觉开发者社区 官方文档地址 效果: Windows平台测试官方软件 Window…

一文让你了解微服务契约测试

谈到微服务&#xff0c;大家都想到契约测试&#xff0c;到底什么是契约测试呢&#xff0c;为什么要使用契约测试呢&#xff0c;关于这样的文章很多&#xff0c;本文将结合Spring Boot让你了解微服务契约测试。 首先我们来看一下微服务&#xff0c;微服务是一种分布式结构&…

详细介绍MES系统的生产监控模块

MES系统的监控模块是系统的重要组成部分&#xff0c;它负责实时监控生产过程中的各项关键指标和数据&#xff0c;以确保生产活动的顺利进行和高效管理。以下是MES系统监控模块的详细介绍&#xff1a; 一、MES系统监控模块的主要功能 实时数据采集&#xff1a; 监控模块通过传…