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 入门讲解1
Apr 15 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
Nov 26 Javascript
jquery下操作HTML控件的实现代码
Jan 12 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
Feb 26 Javascript
Javascript开发之三数组对象实例介绍
Nov 12 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
Sep 11 Javascript
javascript中活灵活现的Array对象详解
Nov 30 Javascript
WebPack基础知识详解
Jan 16 Javascript
angularJs中$scope数据序列化的实例
Sep 30 Javascript
微信小程序自定义导航栏实例代码
Apr 05 Javascript
JS中call()和apply()的功能及用法实例分析
Jun 28 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 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下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
php 常用的系统函数
2017/02/07 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
python连接mysql调用存储过程示例
2014/03/05 Python
Django实现图片文字同时提交的方法
2015/05/26 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python处理session的方法整理
2019/08/29 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
2014年校务公开工作总结
2014/12/18 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers
Python软件包安装的三种常见方法
2022/07/07 Python