JavaScript实现好看的跟随彩色气泡效果


Posted in Javascript onFebruary 06, 2020

本文实例为大家分享了js实现跟随彩色气泡的具体代码,供大家参考,具体内容如下

JavaScript实现好看的跟随彩色气泡效果

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>

<style>
 *{
 margin:0;padding:0;
 }
 body{overflow:hidden;}
 #canvas{
 background-color:black;
 /*width:100%;
 height:100vh;*/
 }
 
</style>

</head>
<body>

<canvas id="canvas" ></canvas> 
 
</body>

<script>
var canvas = document.querySelector('#canvas');
var ctx = canvas.getContext("2d");
var starlist = [];
function init(){
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
}
init();
window.onresize = init;

canvas.addEventListener('mousemove',function(e){
 starlist.push(new Star(e.offsetX,e.offsetY));
 console.log(starlist)
})

function random(min,max){
 return Math.floor((max-min)*Math.random()+ min);
}

function Star(x,y){
 this.x = x;
 this.y = y;
 this.vx = (Math.random()-0.5)*3;
 this.vy = (Math.random()-0.5)*3;
 this.color = 'rgb('+random(0,256)+','+random(0,256)+','+random(0,256)+')';
 this.a = 1;
 console.log(this.color);
 this.draw();
}
Star.prototype={
 draw:function(){
 ctx.beginPath();
 ctx.fillStyle = this.color;
 ctx.globalCompositeOperation='lighter'
 ctx.globalAlpha= this.a;
 ctx.arc(this.x,this.y,30,0,Math.PI*2,false);
 ctx.fill();
 this.updata();
 },
 updata(){
 this.x+=this.vx;
 this.y+=this.vy;
 this.a*=0.98;
 }
}
console.log(new Star(150,200));
function render(){
 ctx.clearRect(0,0,canvas.width,canvas.height)
 
 starlist.forEach((item,i)=>{
 item.draw();
 if(item.a<0.05){
 starlist.splice(i,1);
 }
 })
 
 requestAnimationFrame(render);
}
render(); 

</script>
<div style="text-align:center;">
</div>

</html>

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

Javascript 相关文章推荐
在JavaScript中使用inline函数的问题
Mar 08 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
jquery实现瀑布流效果分享
Mar 26 Javascript
js中将String转换为number以便比较
Jul 08 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
jquery实现界面无刷新加载登陆注册
Jul 30 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
vue cli4.0项目引入typescript的方法
Jul 17 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
Sep 21 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
Nov 09 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
详细介绍解决vue和jsp结合的方法
Feb 06 #Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
Feb 06 #Javascript
js get和post请求实现代码解析
Feb 06 #Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 #Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 #Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 #Javascript
node.js开发辅助工具nodemon安装与配置详解
Feb 06 #Javascript
You might like
PHP和XSS跨站攻击的防范
2007/04/17 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
常用PHP框架功能对照表
2014/10/23 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
市场部规章制度
2014/01/24 职场文书
班级活动策划书
2014/02/06 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
建议书格式
2015/02/04 职场文书
食品质检员岗位职责
2015/04/08 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang