用HTML5的canvas来画一个梦幻星空,来学习一下吧

前言

随着HTML5的火热,越来越多的人投入到HTML5开发中了,canvas作为HTML5中比较重要的一个元素,在很多官网的主页面中被使用到。今天我们一起来看看如何使用canvas画出一个梦幻的星空背景,还会有流星运动。

本文的代码已经放到Github上了,感兴趣的可以自取,Github地址如下。

https://github.com/zhouxiongking/article-pages/blob/master/articles/starry/starry.html

用HTML5的canvas来画一个梦幻星空,来学习一下吧

HTML5

实现效果

首先我们来看看通过canvas实现的星空效果图,如下所示。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

效果图

代码实现

接下来我们看看这个效果是如何通过代码一步步实现的。

首先来看看页面上的HTML代码,只有一个Div元素。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

HTML代码

Javascript代码

首先我们需要定义一些常量,比如画布的宽和高,星星数量,流星个数。在这个星空中流星其实是星星的一个,只是添加了动态效果。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

页面初始化

然后是设定一个定时器,通过一段随机时间生成一个流星的索引号。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

流星索引号

紧接着来看看生成一个星星的方法,该方法返回一个星星的各项参数,包括x,y轴坐标,透明度,x,y轴偏移量。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

生成星星的参数

然后是最重要的render方法,通过该方法可以将星星渲染至画布上,我们将这个方法拆开看,首先是对流星的绘制,流星索引号通过上面metor方法获得。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

画流星

然后是对于星星各项参数的处理,比如有的星星生成的点坐标超出了屏幕宽高,有的透明度是负数,都要将其处理成正常参数。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

各项参数判断

最后是在画布中进行绘制。

用HTML5的canvas来画一个梦幻星空,来学习一下吧

画布绘制

至此,这个画面效果的讲解完毕,如果代码正确的话,就可以看到文中出现的效果图。

结束语

今天这篇文章主要是借助HTML5中的canvas画出了一个梦幻星空的效果,你学会了吗?

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: