代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{background-color: rgb(72, 75, 122);}h1{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);font-size: 5em;font-family: 'fangsong';color: rgb(38, 205, 247);}</style>
</head>
<body><h1>鼠标跟随特效</h1><canvas  id="draw" style=" position: fixed; display: block;">       当前浏览器不支持Canvas,请更换浏览器后再试</canvas><script>/* 首先获取canvas画布 */var canvas = document.querySelector("#draw");var yuan = canvas.getContext("2d");      /* 绑定窗口大小发生改变事件,让canvas随时铺满浏览器可视区 */window.onresize=resizeCanvas;function resizeCanvas(){canvas.width=window.innerWidth;canvas.height=window.innerHeight;}resizeCanvas(); /* 定义数组,存下面触发移动事件时产生的小圆 */var arr = [];/* 绘制小圆形的方法,x与y是初始位置,r是圆半径 */function circle (x,y,r){this.x=x;this.y=y;this.r=r;/* 得一个随机颜色 */this.color = `rgb(${255*Math.random()},${255*Math.random()},${255*Math.random()})`/* 圆的移动方向,random函数为随机返回一个0.0到1.0的数,x可得随机正负数,y为随机正数 */this.xZou = parseInt(Math.random()*10-5);this.yZou = parseInt(Math.random()*10);      /* 向arr数组末尾添加这个元素 */    arr.push(this);}/* 更新圆形的方法 */circle.prototype.updated = function() {/* x和y增加,呈现圆形一直走 */this.x = this.x + this.xZou ;this.y = this.y + this.yZou ;/* 半径慢慢减少 */this.r = this.r - 0.1 ;/* 当半径小于1清除这个圆 */if(this.r<0){this.remove();}}/* 删除小圆的函数 */circle.prototype.remove = function (){/* 遍历数组,找到和调用这个函数相同的圆后用splice函数删除 */for(let i=0;i<arr.length;i++){if(this==arr[i]){arr.splice(i,1);}}}/* 渲染小圆 */circle.prototype.render = function(){yuan.beginPath();yuan.arc(this.x,this.y,this.r,0,2*3.14,false);yuan.fillStyle = this.color;yuan.fill();}/* 给画布绑定鼠标经过事件 */       canvas.addEventListener('mousemove',function(e){/* 传入x,y,r。offsetX距离左侧距离,.., */new  circle(e.offsetX,e.offsetY,Math.random()*15); })/* 定时器渲染小圆,开始动画 ,30毫秒一次 */setInterval(function(){/* 清屏 */yuan.clearRect(0,0,canvas.width,canvas.height);/* 循环数组,给每个小圆更新和渲染 */for(let i=0;i<arr.length;i++){/* 更新 */arr[i].updated();/* 如果浏览器支持,则渲染 */if(arr[i].render()){arr[i].render();}}},30)</script>
</body>
</html>

效果如下:

标题

canvas实现鼠标跟随特效相关推荐

  1. 前端--鼠标跟随特效

    鼠标跟随特效 个人原创,转载请注明出处 里面的内容涉及:Element.setAttribute(),document.createElement(),document.createTextNode( ...

  2. php鼠标跟随特效,JS实现鼠标跟随特效

    这次给大家带来JS实现鼠标跟随特效,JS实现鼠标跟随特效的注意事项有哪些,下面就是实战案例,一起来看一下. 以下是经过小编测试后的全部代码: 鼠标跟随十字JS特效代码 // var ox = docu ...

  3. 鼠标跟随效果html,javascript 鼠标跟随特效代码及理解

    javascript 鼠标跟随特效 *{ margin: 0; padding: 0; } body{ height: 1000px; } div{ width: 50px; height: 50px ...

  4. html鼠标跟随特效代码简短,JS实现的简单鼠标跟随DiV层效果完整实例

    本文实例讲述了JS实现的简单鼠标跟随DiV层效果.分享给大家供大家参考,具体如下: 这段代码呈现一串跟随鼠标的Div效果,并有拖影特效,随着鼠标快速的晃动,Div层效果会不断的增加,后面的Div会自动 ...

  5. php鼠标跟随特效,原生js实现鼠标跟随效果

    鼠标跟随效果 *{margin: 0;padding: 0;} img{position:absolute;top:0;left:0;} (function(window){ // 获取对象 var ...

  6. JS特效——鼠标跟随特效——动态背景线条跟随鼠标移动

    <!--代码放置于</body>上方--><script>!function(){function n(n,e,t){return n.getAttribute(e ...

  7. js鼠标跟随特效鼠标滑过出现小星星动画

    页面代码  <!DOCTYPE html> <html><head><meta charset="UTF-8"><title& ...

  8. html++鼠标跟随动画,5分钟实现Canvas鼠标跟随动画背景

    关于Canvas制作炫酷背景,我会在git上不定时去更新,并会附上详细的解析,如果有喜欢的话,可以到git上瞧瞧 前言 相信很多前端小白都看过这样的背景动画,也好奇如何去实现这种效果!将这种效果应用到 ...

  9. ES6与canvas实现鼠标小球跟随效果

    最近闲来无聊,看了下ES6的语法,结合canvas实现了动画特效--随着鼠标的移动,会有小球跟随且自动消失的动画. 首先,html部分,目前就一个canvas标签. 1 <canvas id=& ...

最新文章

  1. 在网络中同时使用kfold和使用Dropout(基于Iris数据集)
  2. 应用程序无法启动_Windows 10触发启动应用程序警报,以避免系统变慢
  3. 资源 ACCP-S1 BOOK3开发工具的下载
  4. R语言高级算法之支持向量机(Support Vector Machine)
  5. 活动文档服务器,服务器 活动
  6. ajax实现环境,基于jQuery实现的Ajax(Django环境)
  7. 清理windows资源管理器右键打开方式,新建菜单
  8. 教你做系统的公众号选题规划,建立自己的选题库
  9. 偏倚方差分解——R code
  10. SAP中库存地点MRP应用控制
  11. 微信useragent java_微信内置浏览器和小程序的 User Agent 区别及判断方法
  12. 计算机键盘掉色,为什么计算机键盘指示灯熄灭?
  13. DIY一个测量心率装置
  14. 微信小程序之根据经纬度反查地址
  15. VS2019 / 2017 / 2013 产品密钥 – 所有版本
  16. 职场丨女生:啊啊啊,明天面试穿什么?【带图】
  17. sqlserver数据库同步更新数据到mysql数据库,利用ODBC
  18. 励志必看-------没有伞的孩子必须努力奔跑!
  19. eks安装kubectl
  20. Oracle Notification云服务(ONS)快速入门

热门文章

  1. mysql 语法 insert into set
  2. 如何选择适合你的兴趣爱好(三十四),评剧
  3. 【人工智能】AI技术人才成长路线图;深度学习课程笔记
  4. mongodb 的安装与简单操作
  5. CATIA CAA二次开发专题(六)---约束关系分析
  6. [Linux] 两行命令破解宝塔7.5.1专业版、企业版 所有专业版企业版插件免费用!
  7. 【IoT】STC 系列单片机模拟串口
  8. [安卓]手机管家(十)正则表达式 号码归属地
  9. 为什么会有链路聚合这种技术?
  10. 基于Multisim的八路抢答器的设计与仿真-设计资料