html+css+js实现星空特效

2023-11-08

html+css+js实现星空特效

本文已同步到凯文的博客https://kevindurant-source.github.io./
废话不多说直接上代码,效果是一个星空旋转和文字逐渐出现的效果,文字是逐渐出现的,星空中的小球是旋转的

效果视频博主已发往b站效果实现地址

效果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yTggHGqf-1599228095376)(C:\Users\dell\Desktop\凯文的前端博客\images2\1.png)]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>星空特效</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            overflow: hidden;
            background-color: #000;
        }
        h1{
            position: absolute;
            line-height: 50px;
            letter-spacing: 5px;
            color: #fff;
            width: 300px;
            top: 40%;
            left: 50%;
            margin-left: -200px;
            font-size: 30px;
        }
    </style>
</head>
<body>
    <h1>
      
    </h1>
    <canvas></canvas>
    <script>
        var canvas=document.querySelector("canvas");
            ctx=canvas.getContext("2d");
            w=canvas.width=window.innerWidth;
            h=canvas.height=window.innerHeight;
            var canvas2=document.createElement("canvas");
                ctx2=canvas2.getContext("2d");
                canvas2.width=100;
                canvas2.height=100;
            var a=canvas2.width/2;
        var grandient=ctx.createRadialGradient(a,a,0,a,a,a);
            grandient.addColorStop(0.025,'#fff');
            grandient.addColorStop(0.1, 'hsl(220,59%,18%)');
            grandient.addColorStop(0.025, 'hsl(220,60%,33%)');
            grandient.addColorStop(1,"transparent");
            ctx2.fillStyle=grandient;
            ctx2.beginPath();
            ctx2.arc(a,a,a,0,Math.PI*2);
            ctx2.fill();
            ctx2.closePath();
            var stars=[];
            var count=0;
            function Star(){
                this.pos=Math.floor(Math.random()* w/2-100);
                this.r=Math.floor(Math.random()*100);
                this.dx=w/2;
                this.dy=h/2;
                this.rand=Math.floor(Math.random()*360);
                this.speed=this.pos/100000;
                stars[count]=this;
                count ++;
            }
            Star.prototype.draw=function(){
                var x=Math.sin(this.rand+1)* this.pos+this.dx;
                    y=Math.cos(this.rand)*this.pos/2+this.dy;
                ctx.drawImage(canvas2,x-this.r/2,y-this.r/2,this.r,this.r);
                this.rand=this.rand+this.speed;
            }
            for(var i=0;i<1000;i++){
                new Star();
            }
            function anmit(){
                ctx.clearRect(0,0,w,h);
                for(var i=0;i<stars.length;i++){
                    stars[i].draw();
                }
                requestAnimationFrame(anmit);
            }
            anmit();
            var oH=document.getElementsByTagName("h1")[0];
            var arr=["这世间过于俗气","不像你一般","浩瀚星辰,温柔婉转"],
                index=0,
                arrLen=arr.length,
                strLen=arr[0].length;
                pos=0,
                row=0,
                str="",
                timer=null;
            function print() {
                while(row<index){
                    str=str+arr[row]+"<br>";
                    row++;
                }
                oH.innerHTML=str+arr[index].substring(0,pos);
                if(pos==strLen){
                    index++;
                    pos =0;
                    if(index<arr.length){
                        strLen=arr[index].length;
                        timer=setTimeout(print,250);
                    }
                }else{
                    pos++;
                    timer=setTimeout(print,250);
                }
            }
            setTimeout(print,250);
    </script>
</body>
</html>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

html+css+js实现星空特效 的相关文章

  • Chromium 嵌入式框架支持 HTML5 音频吗?

    我一直在玩 CefSharp 但似乎无法播放任何音频 我可以让音频控件出现 但它们保持冻结状态 这些是我使用的版本 Chromium 21 0 1180 0 CEF r728 CefSharp 0 12 4596 50 我先尝试了 mp3
  • Perl:HTTP::微小删除留下损坏的锚标记

    我编写了一个脚本 该脚本收集从数据库读取的缓冲区内的所有 URL 检查该页面是否仍然存在 并使用 HTTP Tiny 从缓冲区中删除 URL 如果该 URL 无法访问或返回无效 问题是 HTTP Tiny 删除左锚标记 例如此处无效的文本
  • IE 中的 HR 标签 - 删除边框

    在除 IE7 及更低版本之外的其他浏览器中 hr 在 hr 标签周围显示边框 但我不希望它出现 我已经尝试过这个解决方案 但它周围似乎仍然有边框 它看起来像这样 我该如何摆脱它 See http webdesign about com od
  • 为什么将 x 和 y 设置为 0 时 svg 文本会消失?

    我刚刚开始阅读有关svg我提出了以下问题 我正在创建一个简单的svg with a text里面如下图所示 从我的阅读中我了解到x and y of the text标签声明文本在标签内的位置svg space 为什么当我同时设置x and
  • 获取点击的的DOM路径

    HTML div class lol a class rightArrow href a div 伪代码 rightArrow click function rightArrowParents this dom dom is the pse
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 如何向 CSS 形状添加偏移轮廓?

    我在创建带有斜角边缘的块时遇到了一些问题 此外我需要一个斜角的边框并稍微偏离主块 问题是这个块可以根据屏幕响应 不知道具体的方法 希望大家帮忙 这就是我现在所做的 box display flex padding 20px height 2
  • 从 html 属性中删除单引号和双引号,并且除 href 和 src 之外的所有属性上都没有空格

    我正在尝试从 html 属性中删除单引号和双引号 这些属性是没有空格的单个单词 我写了这个有效的正则表达式 type title data toggle colspan scope role media name rel id class
  • 更改

    标签中一个单词的颜色

    我正在处理一份 html 文档 并且只想在我的文档中创建一个单词 p 标记不同的颜色 如果不做完全不同的事情 这可能吗 p p tag p p I want to make only THIS word blue p p style dis
  • Javascript 使事件点击和语音识别与多个按钮一起工作

    所以我正在使用 webkitSpeechRecognition 并且它工作得很好 但问题是我想同时在多个地方使用它 当我将它添加到页面上的另一个部分时 它无法正常工作 这是它自己工作的情况 var final transcript var
  • Arbor Js - 节点 Onclick?

    我在用着arbor js http arborjs org 创建图表 我如何创建一个onclick节点的事件 或者在单击时在某处创建节点链接 Arborjs org 主页的节点在单击时链接到外部页面 我如何复制它 或者使节点在单击时调用 j
  • 如何使用文件输入在PDFJS中打开本地PDF?

    我想知道是否有办法使用选择pdf文件input type file 并使用打开它PDFJS https github com mozilla pdf js 您应该能够使用 FileReader 来获取文件对象的内容作为类型化数组 pdfjs
  • 在iOS上,“添加到主页”缓存保存在哪里,如何清除它?

    我正在 iPad iOS v7 上制作一个 html5 游戏 当我将其添加到主页时 它非常顽固地释放缓存 如果我在 Safari 中查看它 这会按照您所期望的方式工作 如果我刷新一次或两次 页面就会以最新状态缓存 但在主页上却是另一回事 它
  • 设置双指缩放时精确的滚动位置

    我正在创建一个地图应用程序 它将标记图像放置在画布上并滚动到它 我正在使用浏览器的捏缩放和滚动来放大 缩小地图 然而 我注意到有一些奇怪的行为 我想知道如何解决它 这有点难以解释 但我们开始吧 假设您处于网页的标准缩放级别 无法进一步缩小
  • 电话输入自动填充会删除国际前缀

    我有一个类型为 tel 的输入字段 并启用了自动完成功能
  • 适用于移动设备的响应式订单确认电子邮件?

    我从未见过令人惊叹的订单确认 发票电子邮件 即使是最好的 html5 网站也会发送糟糕的订单确认电子邮件 有时是纯文本 我相信这是因为发票通常需要使用表格来显示购买的物品 这在移动设备上实现起来非常困难 我发现了一些让手机上的表格更易于管理
  • 如何在画布上所有其他内容后面绘制图像? [复制]

    这个问题在这里已经有答案了 我有一块画布 我想用drawImage在画布上当前内容后面绘制图像 由于画布上已经有内容 我正在使用字面上的画布来创建包含图像的画布 因此我无法真正先绘制图像 所以我无法使用drawImage在我呈现其余内容之前
  • Facebook 点赞按钮消失

    我的网站中的 Facebook Like 按钮出现问题 添加此代码 由 facebook 提供 按钮在创建时正确显示在任何页面中
  • Bootstrap 导航栏与 Google 位置重叠自动完成下拉菜单

    我有一个导航栏 我试图在其中添加一个地点搜索框 除了谷歌位置提示框的一小部分被导航栏重叠 如下图所示 之外 一切几乎都有效 我尝试过改变z index输入框的值改为10或2000或90000但似乎没有效果 我还缺少其他需要做的事情吗 这是
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西

随机推荐

  • linux:docker compose使用已经存在的网络

    问题 如题 参考 Networking in Compose Docker Documentation services networks network1 name my pre existing network external tru
  • vue2+ElementUI时间选择器限制可选范围为今天往前7天内的任意一天

    题目有2个重点 1 可选范围为今天往前7天 含今天 2 只能选择7天内的任意一天 由此可知 用户选择的最大日期和最小日期为同一天 即只能选择一天 也就是说 使用了时间范围插件 但是model中的两个日期是同一天 HTML
  • c# 位运算符

    说来惭愧 今天看别人提供的源码 看了这些运算符竟然有些记不起来 在这里就记录一下 首先认识这些运算符 按位与 其实与 逻辑运算符有一致的地方 下面会讲到 按位或 同样与 有类似的地方 按位取反 按位异或 lt lt 左移运算符 gt gt
  • Python爬取天气数据并进行分析与预测

    随着全球气候的不断变化 对于天气数据的获取 分析和预测显得越来越重要 本文将介绍如何使用Python编写一个简单而强大的天气数据爬虫 并结合相关库实现对历史和当前天气数据进行分析以及未来趋势预测 1 数据源选择 选择可靠丰富的公开API或网
  • 百度又开源一款压测工具,可模拟几十亿的并发场景,太强悍了

    dperf 是百度开源的一款基于 DPDK 的 100Gbps 网络性能和负载测试软件 能够每秒建立千万级的 HTTP 连接 亿级别的并发请求和数百 Gbps 的吞吐量 优点 性能强大 基于 DPDK 使用一台普通 x86 服务器就可以产生
  • burpsuite扩展集成sqlmap插件

    通常我们在使用sqlmap测试SQL注入问题的时候会先使用burpsuite来抓包 然后交给sqlmap进行扫描 此操作略显繁琐 为了避免这种繁琐的重复操作可以将sqlmap以插件的方式集成到burpsuite里面 实现request右击s
  • ConnectTimeout和ReadTimeout所代表的意义

    ConnectTimeout 指的是建立连接所用的时间 适用于网络状况正常的情况下 两端连接所用的时间 在java中 网络状况正常的情况下 例如使用HttpClient或者HttpURLConnetion连接时设置参数connectTime
  • GO语言学习-Sublime+Go语言环境搭建

    sublime text3 Golang 搭建开发环境 1 引言 sublime text3搭建Golang的开发环境顺序为 1 安装Golang 2 sublime 安装 Gosublime 3 修改Gosublime中的配置 使之支持G
  • 基于蓝牙技术使用stm32制造一个智能小车 (寻迹,避障,遥控)

    目录 1 制作智能小车的硬件名单 3 引脚图 2 先让小车动起来 1 小车运动 2 代码 3 寻迹 1 工作原理 2 代码 4 超声波避障 1 工作原理 2 代码 5 蓝牙遥控 1 蓝牙工作原理 2 代码 6 oled屏幕 1 工作内容 7
  • Bootstarp入门教程(3)栅格系统

    栅格系统简介 栅格系统用于通过一系列的行 row 与列 column 的组合创建页面布局 你的内容就可以放入创建好的布局中 下面就介绍以下Bootstrap栅格系统的工作原理 行 row 必须包含在 container中 以便为其赋予合适的
  • 【最新】Java基础学习笔记(20天学会java黑马)(一)

    文章目录 Java背景 初步了解 Java快速入门 HelloWorld案例 Java基础语法 注释 数据类型 变量 关键字与标志符 类型转换 强制类型转换 运算符 算术运算符 赋值运算符 自增自减运算符 关系运算符 逻辑运算符 短路逻辑运
  • 基于Linux系统下安装Tomcat

    Tomcat服务器是一个免费开放开源的轻量级Web应用服务器 可以实现项目的部署和管理 本博客将实现Tomcat在Linux操作系统中的安装 1 检查系统中是否有java JDK 1 1 Windows系统下查看 使用 Win R键打开运行
  • eclipse中编写spring配置文件时有design和source,namespace 如何设置出来的问题

    首先要安装Spring插件 在已经装了 spring插件的情况下 右键点击你要显示的 xml文件 会出来 open with gt spring config editor 如图
  • ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch

    GeForce MX150 Python3 6 cuda 9 0 cudnn 7 tensorflow 1 12 0 按多个教程安装前后也出了很多问题 最终才安装成功 以防万一 现将过程记录如下 1 安装显卡驱动 注意 两种方法 方法一为我
  • vue 设置提示 @ 路径 和 ~@ 路径

    菜鸟最近用公司的电脑开发 结果发现之前有的路径提示全没了 感觉非常难受 然后去插件一看才发现 好像是菜鸟自己不小心把这个插件给删了 有点难受 但是安装了这插件还是有点不好用 就是感觉每次使用了 vue 的 或者 开头的路径时 总是没有提示
  • React:‘XXX’ is defined but nerver used的解决方法

    原因 想引入Login组件 但是一直显示 组件被定义但从未使用 的字样 但是我明明就有引用吖 解决方法 原来是组件的文件名首字母需要大写 因为要做项目 但是React的基础课程还没学完 只好以这种半桶水的知识与头脑去做项目 难免会遇到很多困
  • 关于车载以太网理解

    目录 1 车载以太网概述 2 物理层 PHY 2 1 总体说明 2 2 物理层架构 2 3 物理层控制器的架构 2 4 物理层编码原理 3 链路层 MAC 3 1 MAC控制器架构 3 2 MAC地址 3 3 数据传输 3 4 MAC帧格式
  • 【拜小白的机器学习】5-机器学习的评估度量标准(评估)

    在上一节中我们主要讲到机器学习的评估方法 其中重点是讲解了三种对数据集的划分方式 包括留出法 hold out 交叉验证法 k fold cross validation 自助法 bootstrap 本节来看看机器学习的评估度量标准 其中我
  • Spring之功能使用

    文章目录 注入bean 配置文件 set方式 构造方法注入 根据参数类型注入 根据构造函数的顺序 类型和顺序混合使用 使用name来注入 工厂模式注入 少用 注入不同的类型 字面量 引用其他bean 内部bean 设置null 联级设置属性
  • html+css+js实现星空特效

    html css js实现星空特效 本文已同步到凯文的博客https kevindurant source github io 废话不多说直接上代码 效果是一个星空旋转和文字逐渐出现的效果 文字是逐渐出现的 星空中的小球是旋转的 效果视频博