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 DOM 学习第三章 内容表格
Feb 19 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
JSONP跨域的原理解析及其实现介绍
Mar 22 Javascript
JavaScript实现带标题的图片轮播特效
May 20 Javascript
js制作支付倒计时页面
Oct 21 Javascript
JavaScript中绑定事件的三种方式及去除绑定
Nov 05 Javascript
原生js实现验证码功能
Mar 16 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
vue实现简单学生信息管理
May 30 Javascript
JavaScript 闭包的使用场景
Sep 17 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 用数组降低程序的时间复杂度
2009/12/04 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP合并静态文件详解
2014/11/14 PHP
php生成zip文件类实例
2015/04/07 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python字典遍历操作实例小结
2019/03/05 Python
详解Python的循环结构知识点
2019/05/20 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
python如何进行矩阵运算
2020/06/05 Python
python文件路径操作方法总结
2020/12/21 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
vue判断按钮是否可以点击
2022/04/09 Vue.js