冬天已经过去,春天马上来临,让我用代码再给你下最后一场雪

展示

想想坐在火车上回家的时候,窗外飞舞的雪花,一家人坐在一起吃年夜饭时,漫天飞舞的大雪,怎么样,雪花虽冷,随总是让我们感到一股暖意,自古也有瑞雪兆丰年一说,今天就带大家一起亲手来用代码下一场雪。

首先来看一下成品图,怎么样,还行吧,(因为gif录制原因,这是把屏幕放的比较小录制的)

动画.gif

实现

先来一个背景

image.png

首先来一个灰蒙蒙的背景,别问我为啥搞一个这样的背景(问就是这其实是我下一篇文章写的东西)

画一朵雪花

image.png

我们这里没有过于追求雪花的精细程度,所以就简单的弄了一个小圆点来模拟雪花,再来一个白色的阴影,给雪花一种朦胧感,是不是就有那么回事了。

生成雪花

上面的雪花我们是写死位置的,仅仅是为了先定义雪花的外形,下面我们就来模拟真实下雪的样子,随机的生成雪花,如果你看过之前的打年兽的文章,你肯定会与生成雪花用的方法了然于胸,没错,我们首先获取屏幕的宽度,然后定时的生成雪花,并给每一篇雪花一个随机的宽度,注意,这个宽度要在屏幕的宽度之内,否则我们下到屏幕外面也没啥意义啊,还浪费性能,之后我们给每一片雪花一个定时器,定时往下移动,然后就成了。

这里我们还用requestAnimationFrame,但是requestAnimationFrame没有定时功能,所以我们要记录最后一次生成雪花的时间,和当前时间对比,如果达到我们想要的间隔了,就创建下一片雪花

    lastSnowTime: '', // 最后一片雪花生成时间
    snowSpeed: 3, // 雪花下落的速度
    lastSnowTime: '', // 最后一片雪花生成时间
    snowFrequency: 4, // 雪花生成的频率

    snowStart () {
   
      // 雪花生成的频率
      let now = new Date().getTime()
      if (now - this.lastSnowTime > (1000 / this.snowFrequency)) {
   
        
      console.log(1);
        // 创建雪花
        let snowItem = document.createElement('div')
        snowItem.className = 'snow-item'
        snowItem
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值