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的函数重名看其初始化方式
Mar 08 Javascript
javascript正则表达式之search()用法实例
Jan 19 Javascript
jQuery实现360°全景拖动展示
Mar 18 Javascript
JavaScript实现的MD5算法完整实例
Feb 02 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
May 25 Javascript
如何检测JavaScript的各种类型
Jul 30 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
Nov 22 Javascript
three.js实现围绕某物体旋转
Jan 25 Javascript
Vue.set()实现数据动态响应的方法
Feb 07 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
JavaScript实现多球运动效果
Sep 07 Javascript
详细介绍解决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代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
python中的字符串内部换行方法
2018/07/19 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
python中count函数知识点浅析
2020/12/17 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
仓库管理计划书
2014/05/04 职场文书
春节联欢会策划方案
2014/05/16 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
现役军人家属慰问信
2015/03/24 职场文书
酒店收银员岗位职责
2015/04/07 职场文书