js canvas实现星空连线背景特效


Posted in Javascript onNovember 01, 2019

本文实例为大家分享了js canvas星空连线背景的具体代码,供大家参考,具体内容如下

<html>
 <head>
 <meta charset="UTF-8">
 <title>canvas星空连线背景特效</title>
 <style type="text/css">
 body{
 margin: 0;
 }
 #canvas{
 display: block;
 background: #000;
 margin: 0 auto;
 }
 </style>
 </head>
 <body>
 <canvas id="canvas"></canvas>
 <script>
 function Starry(){
 this.cxt=canvas.getContext("2d");
 canvas.width=window.innerWidth;
 canvas.height=window.innerHeight;
 this.cW=canvas.width;
 this.cH=canvas.height;
 this.num=200;
 this.data=[];
 }
 Starry.prototype={
 init: function(){
 for (var i=0;i<this.num;i++) {
 this.data[i]={
 x:Math.random()*this.cW,
 y:Math.random()*this.cH,
 cX:Math.random()*0.6-0.3,
 cY:Math.random()*0.6-0.3
 };
 this.drawCircle(this.data[i].x,this.data[i].y);
 }
 
 },
 drawCircle: function(x,y){
 var cxt=canvas.getContext("2d");
 cxt.save();//保存路径
 cxt.fillStyle="pink";
 cxt.beginPath();//开始路径
 cxt.arc(x,y,1,0,Math.PI*2,false);
 cxt.closePath();//结束路径
 cxt.fill();//填充方法
 cxt.restore();//释放路径
 },
 drawLine: function(x1,y1,x2,y2){
 var cxt=this.cxt;
 var color=cxt.createLinearGradient(x1,y1,x2,y2);
 color.addColorStop(0,"yellow");
 color.addColorStop(1,"green");
 cxt.save();
 cxt.strokeStyle=color;
 cxt.beginPath();//开始路径
 cxt.moveTo(x1,y1);
 cxt.lineTo(x2,y2);
 cxt.closePath();//结束路径
 cxt.stroke();//填充方法
 cxt.restore();//释放路径
 
 },
 moveCircle: function(){
 var self=this;
 self.cxt.clearRect(0,0,self.cW,self.cH);
 for(var i=0;i<self.num;i++){
 self.data[i].x+=self.data[i].cX;
 self.data[i].y+=self.data[i].cY;
 if(self.data[i].x>self.cW||self.data[i].x<0){
 self.data[i].cX=-self.data[i].cX;
 }
 if(self.data[i].x>self.cH||self.data[i].y<0){
 self.data[i].cY=-self.data[i].cY;
 }
 this.drawCircle(self.data[i].x,self.data[i].y);
 for(var j=i+1;j<self.num;j++){
 if(Math.pow(self.data[i].x-self.data[j].x,2)
 +Math.pow(self.data[i].y-self.data[j].y,2)
 <=50*50){
 self.drawLine(self.data[i].x,self.data[i].y,
 self.data[j].x,self.data[j].y);
 }
 }
 }
 }
 }
 var starry=new Starry();
 starry.init();
 setInterval(function(){starry.moveCircle();},1);
 </script>
 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery validate poshytip 自定义样式
Nov 26 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
Javascript中的getUTCDay()方法使用详解
Jun 10 Javascript
JavaScript程序开发之JS代码放置的位置
Jan 15 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
Dec 26 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
JS实现的走迷宫小游戏完整实例
Jul 19 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
Node.js动手撸一个静态资源服务器的方法
Mar 09 Javascript
js实现动态时钟
Mar 12 Javascript
JavaScript enum枚举类型定义及使用方法
May 15 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 #jQuery
微信小程序定义和调用全局变量globalData的实现
Nov 01 #Javascript
vue-router 中 meta的用法详解
Nov 01 #Javascript
VUE 解决mode为history页面为空白的问题
Nov 01 #Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 #Javascript
JS中自定义事件的使用与触发操作实例分析
Nov 01 #Javascript
vue设置动态请求地址的例子
Nov 01 #Javascript
You might like
新闻分类录入、显示系统
2006/10/09 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
一些mootools的学习资源
2010/02/07 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
JS继承 笔记
2011/07/13 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
React-intl 实现多语言的示例代码
2017/11/03 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
Python 字典dict使用介绍
2014/11/30 Python
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
python对url格式解析的方法
2015/05/13 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
Python如何实现强制数据类型转换
2019/11/22 Python
python request 模块详细介绍
2020/11/10 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
幼师小班个人总结
2015/02/12 职场文书