JavaScript canvas实现跟随鼠标事件


Posted in Javascript onFebruary 10, 2020

本文实例为大家分享了用canvas实现跟随鼠标事件的具体代码,供大家参考,具体内容如下

//鼠标移动 展现光片

JavaScript canvas实现跟随鼠标事件

<!DOCTYPE html>
<html>

<head>
 <meta charset="UTF-8">
 <title></title>
 <style>
 body {
 margin: 0;
 overflow: hidden;
 }

 #canvas {
 background: #000;
 }
 </style>
</head>

<body>
 <canvas id="canvas"></canvas>
 <script>
 var canvas = document.getElementById('canvas');
 var context = canvas.getContext('2d');
 var circleList = [];

 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;

 canvas.addEventListener('mousemove', function (e) {
 // 将对象push到数组中,画出来的彩色小点可以看作每一个对象中记录着信息 然后存在数组中
 circleList.push(new Circle(e.clientX, e.clientY));
 })

 //取x到y之间随机数:Math.round(Math.random()*(y-x)+x) 包括y
 function random(min, max) {
 return Math.round(Math.random() * (max - min) + min);
 }

 function Circle(x, y) {
 this.x = x;
 this.y = y;

 this.vx = (Math.random() - 0.5) * 3; //随机出来一个正数,或者负数。乘3是为了让速度变得大一点
 this.vy = (Math.random() - 0.5) * 3;

 this.color = 'rgb(' + random(0, 255) + ',' + random(0, 255) + ',' + random(0, 255) + ')';

 this.a = 1; // 初始透明度

 this.draw();
 }
 Circle.prototype = {
 draw() {
 context.beginPath();
 context.fillStyle = this.color;
 context.globalCompositeOperation = 'lighter';
 context.globalAlpha = this.a; //全局透明度
 context.arc(this.x, this.y, 30, 0, Math.PI * 2, false);
 context.fill();
 this.update();
 },
 update() {
 // 根据速度更新每一个小圆的位置
 this.x += this.vx;
 this.y += this.vy;
 this.a *= 0.98;
 }
 }

 function render() {
 //把原来的内容区域清除掉
 context.clearRect(0, 0, canvas.width, canvas.height);
 circleList.forEach(function (ele, i) {
 ele.draw();

 if (ele.a < 0.05) {
  circleList.splice(i, 1);
 }
 });

 requestAnimationFrame(render); //动画,会根据浏览器的刷新频率更新动画
 }
 render();
 </script>
</body>

</html>

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

Javascript 相关文章推荐
JQuery困惑—包装集 DOM节点
Oct 16 Javascript
基于jQuery的Tab选项框效果代码(插件)
Mar 01 Javascript
javascript打印输出json实例
Nov 11 Javascript
浅析js预加载/延迟加载
Sep 25 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
js实现3d悬浮效果
Feb 16 Javascript
JS实现向iframe中表单传值的方法
Mar 24 Javascript
详解vue嵌套路由-query传递参数
May 23 Javascript
自定义事件解决重复请求BUG的问题
Jul 11 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
JavaScript禁用右键单击优缺点分析
Jan 20 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 Javascript
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 #Javascript
node.js使用 http-proxy 创建代理服务器操作示例
Feb 10 #Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 #Javascript
js实现登录拖拽窗口
Feb 10 #Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 #Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
Feb 10 #Javascript
node.js使用http模块创建服务器和客户端完整示例
Feb 10 #Javascript
You might like
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
从Python程序中访问Java类的简单示例
2015/04/20 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
python 异或加密字符串的实例
2018/10/14 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
Python判断telnet通不通的实例
2019/01/26 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
python代码区分大小写吗
2020/06/17 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
DBA的职责都有哪些
2012/05/16 面试题
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
课外活动实习计划
2015/01/19 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书