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 相关文章推荐
JScript分割字符串示例代码
Sep 04 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
Google 地图API资料整理及详细介绍
Aug 06 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
Node.js的特点详解
Feb 03 Javascript
vue中各组件之间传递数据的方法示例
Jul 27 Javascript
angularjs 的数据绑定实现原理
Jul 02 Javascript
vue实现文件上传功能
Aug 13 Javascript
微信小程序实现下拉菜单切换效果
Mar 30 Javascript
详解关于微信setData回调函数中的坑
Feb 18 Javascript
通过JavaScript下载文件到本地的方法(单文件)
Mar 17 Javascript
JS三级联动代码格式实例详解
Dec 30 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判断远程图片是否存在的几种方法
2014/05/04 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
完美的php分页类
2017/10/24 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Django中使用Celery的方法示例
2018/11/29 Python
python range实例用法分享
2020/02/06 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
Python Selenium库的基本使用教程
2021/01/04 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
项目投资建议书
2014/05/16 职场文书
会议接待欢迎标语
2014/10/08 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
小英雄雨来观后感
2015/06/09 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android