iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript实现流星雨效果的示例代码
  • 375
分享到

JavaScript实现流星雨效果的示例代码

2024-04-02 19:04:59 375人浏览 安东尼
摘要

目录演示技术栈源码首先建立星星对象让星星闪亮起来创建流星雨对象让流星动起来演示 上一次做了一个雨滴的动画,顺着这种思维正好可以改成流星雨,嘿嘿我真是一个小机灵。 技术栈 还是先建立

演示

上一次做了一个雨滴的动画,顺着这种思维正好可以改成流星雨,嘿嘿我真是一个小机灵。

技术栈

还是先建立画布

 <body>
        <canvas id="stars"></canvas>
 </body>

画布标签我昨天讲过了。不知道的小伙伴可以去看看。

源码

首先建立星星对象

 //创建一个星星对象
            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);
                }
                
            }

让星星闪亮起来

        //页面加载的时候
            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);
            }

创建流星雨对象

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);
//                  x = Math.random()*10+30;
        this.angle = 30; //流星倾斜角
        x = Math.random()+0.5;
        this.speed = Math.ceil(x); //流星的速度
        var cos = Math.cos(this.angle*3.14/180);
        var sin = Math.sin(this.angle*3.14/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.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(){
        //清空流星像素
        var x = this.x+this.width-this.offset_x;
        var y = this.y-this.height;
        context.clearRect(x-3,y-3,this.offset_x+5,this.offset_y+5); 
//                  context.strokeStyle="red";
//                  context.strokeRect(x,y-1,this.offset_x+1,this.offset_y+1);
        //重新计算位置,往左下移动
        this.countPos();
        //透明度增加
        this.alpha -= 0.002;
        //重绘
        this.draw(); 
    }
    
}

以上就是javascript实现流星雨效果的示例代码的详细内容,更多关于JavaScript流星雨的资料请关注编程网其它相关文章!

--结束END--

本文标题: JavaScript实现流星雨效果的示例代码

本文链接: https://www.lsjlt.com/news/151185.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript实现流星雨效果的示例代码
    目录演示技术栈源码首先建立星星对象让星星闪亮起来创建流星雨对象让流星动起来演示 上一次做了一个雨滴的动画,顺着这种思维正好可以改成流星雨,嘿嘿我真是一个小机灵。 技术栈 还是先建立...
    99+
    2024-04-02
  • JavaScript如何实现流星雨效果
    这篇文章主要介绍“JavaScript如何实现流星雨效果”,在日常操作中,相信很多人在JavaScript如何实现流星雨效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如何实现流星雨效果...
    99+
    2023-07-02
  • JavaScript实现代码雨效果
    本文实例为大家分享了JavaScript实现代码雨效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> ...
    99+
    2024-04-02
  • CSS3怎么实现流星雨效果
    小编给大家分享一下CSS3怎么实现流星雨效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!说明:正文只讲述单个流星雨的实现方式,多个的效果只需要对单个的动画起始点...
    99+
    2023-06-14
  • Python实现屏幕代码雨效果的示例代码
    直接上代码 import pygame import random def main(): # 初始化pygame pygame.init() #...
    99+
    2024-04-02
  • JavaScript canvas实现代码雨效果
    本文实例为大家分享了canvas实现代码雨效果的具体代码,供大家参考,具体内容如下 先看效果图 这个效果图是不是像极了以前电影里面的黑客技术,看起来蛮难的,其实操作起来还是挺简单的...
    99+
    2024-04-02
  • C语言实现流星雨效果流程
    目录一、头文件二、结构体三、初始化四、绘制函数五、移动函数六、界面设计七、主函数总结视频讲解感谢序 再亮眼的流星,也会一闪而过。 嗨!这里是狐狸~~ 没错,我又来了,上次的“烟花”表...
    99+
    2024-04-02
  • 怎么用Python实现流星雨效果
    这篇文章将为大家详细讲解有关怎么用Python实现流星雨效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。流星雨的前提是得先有一个流星,所谓流星,就是一个拖着尾巴的直线。所谓拖着尾巴,实际上是我们的浪漫想...
    99+
    2023-06-22
  • html流星雨代码怎么实现
    本教程操作环境:Windows10系统、HTML5版本、Dell G3电脑。html流星雨代码怎么实现?动态流星雨制作代码分享(可直接复制)流星雨制作效果图(流星带颜色的,截图没显示):今天在书上,看到了一个不错的流星雨制作案例,感觉挺好看...
    99+
    2023-05-14
    html
  • html流星雨代码如何实现
    这篇文章主要讲解了“html流星雨代码如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html流星雨代码如何实现”吧!html流星雨代码的实现方法:1、创建一个HTML示例文件;2、添...
    99+
    2023-07-04
  • 怎么用html实现流星雨的效果
    小编给大家分享一下怎么用html实现流星雨的效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   <!doctypeh...
    99+
    2024-04-02
  • JavaScript利用canvas绘制流星雨效果
    目录前言需求分析实现过程1.绘制满天繁星2.满天繁星闪起来3.绘制流星4.流星划过夜空5.流星雨6.merge视觉盛宴前言 最近总是梦见一些小时候的故事,印象最深刻的就是夏天坐在屋顶...
    99+
    2022-11-13
    JavaScript canvas绘制流星雨 JavaScript canvas 流星雨 JavaScript 流星雨
  • 基于Python实现流星雨效果的绘制
    目录1 前言2 霍金说移民外太空3 浪漫的流星雨展示 4 Python代码 1 前言 我们先给个小故事,提一下大家兴趣;然后我给出论据,得出结论。最后再浪漫的流星...
    99+
    2024-04-02
  • HTML5怎么实现炫丽的流星雨效果
    这篇“HTML5怎么实现炫丽的流星雨效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“HT...
    99+
    2024-04-02
  • html5如何实现炫丽的流星雨效果
    这篇文章给大家分享的是有关html5如何实现炫丽的流星雨效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 代码如下: function Smearing($object...
    99+
    2024-04-02
  • C语言如何实现流星雨效果
    小编给大家分享一下C语言如何实现流星雨效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!上次忘记说了,因为我们是用C语言写的所以是控制台程序,创造不出来界面,那怎...
    99+
    2023-06-25
  • JavaScript中canvas实现代码雨效果的方法
    这篇文章将为大家详细讲解有关JavaScript中canvas实现代码雨效果的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了canvas实现代码雨效果的具体代码,供大家参考,具体内...
    99+
    2023-06-15
  • 用Python实现流星雨效果的方法详解
    流星雨的前提是得先有一个流星,所谓流星,就是一个拖着尾巴的直线。所谓拖着尾巴,实际上是我们的浪漫想象,实质无非是尺寸和颜色的渐变罢了。 而matplotlib并不能给一条曲线映射多个...
    99+
    2024-04-02
  • js+canvas实现代码雨效果
    本文实例为大家分享了js+canvas代码雨效果的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html> <h...
    99+
    2024-04-02
  • 如何使用HTML5实现炫丽的流星雨效果
    这期内容当中小编将会给大家带来有关如何使用HTML5实现炫丽的流星雨效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 徐家破镜昏如雾。半面...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作