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的Alert消息框插件使用介绍
Oct 09 Javascript
javascript的动态加载、缓存、更新以及复用(一)
Jun 09 Javascript
前端编码规范(3)JavaScript 开发规范
Jan 21 Javascript
JavaScript省市级联下拉菜单实例
Feb 14 Javascript
Vue.js实现移动端短信验证码功能
Mar 29 Javascript
vue2.0 keep-alive最佳实践
Jul 06 Javascript
vue获取dom元素注意事项
Dec 28 Javascript
angular2路由之routerLinkActive指令【推荐】
May 30 Javascript
vue实现未登录跳转到登录页面的方法
Jul 17 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
vue通过cookie获取用户登录信息的思路详解
Oct 30 Javascript
js canvas画布实现高斯模糊效果
Nov 27 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
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
Python中random模块用法实例分析
2015/05/19 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
scrapy爬虫完整实例
2018/01/25 Python
python 2.7.14安装图文教程
2018/04/08 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
Python logging模块原理解析及应用
2020/08/13 Python
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
材料员岗位职责
2015/02/10 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android