用canvas在vue实现流星雨效果(移动端)

本文介绍如何在Vue项目中利用canvas创建流星雨效果,适用于移动端。通过分析流星雨的视觉特征和运动规律,定义流星类并采用es6的class语法。在vue的生命周期钩子mounted中调用函数生成流星,并处理边界效果,同时讲解了随机生成流星出生位置和速度的方法。文章还分享了实现流星尾巴的原理,即通过累加透明遮罩层形成尾迹效果,并建议读者亲手实践以加深理解。

效果网站最近给女朋友写了一个网站,说这句话呢主要是想显摆我有女朋友,好了进入正题;我写的网站是针对移动端写的所以角度记忆大小,还要劳烦各位亲自改一下。
首先,流星雨就是多个流星下落,然后来想一下他是怎么实现的。它是由流星头和流星尾巴组成,从视觉上来说头是比较亮的,尾巴则是稍暗一点,然后,考虑一下流星是怎么运动的,他首先要有一定的角度,当然垂直往下落我也试了感觉不像,流星雨呢它是由多个不同的流星组成,他们的速度、大小都是随机的,还有他的透明度也要是随机的。咱分析完了,接下来开始逐个实现。
1.首先定义一个流星的类这里涉及到一个js设计模式----工厂模式。我用的是矩形,矩形相比于圆形就是宽高不一样,如此显得更像。因为定义类还是比较简单的这里就不多赘述了,直接上代码。

class liuxing{
    constructor(prop){
        this.x = 0;
        this.y = 0;
        this.w = 0;
        this.h = 0;
        this.vx = 0;
        this.vy = 0;
        this.fillStyle = '';
        this.strokeStyle = "rgba(0,0,0,0)";
        this.rotation = 20*Math.PI/180;
        Object.assign(this,prop);
        return this;
    }
    drawLoad(ctx){
        let {x,y,w,h} = this;
        ctx.beginPath();
        ctx.fillRect(x,y,w,h);
        ctx.closePath();
    }
    rander(ctx){
        let {fillStyle,strokeStyle,x,y,rotation} = this;
        ctx.save();
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值