代码如下:

<!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. sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
  2. Linux开机详细流程
  3. 微信8.0.6正式发布,新增了7大变化,个个实用~
  4. SpringBoot快速集成Apollo配置中心
  5. python报错:ModuleNotFoundError: No module named cv2.cv2(bug不能加英文引号)
  6. C++:40---继承中类成员的变化关系
  7. 通过结构体某个成员的地址计算结构体首地址
  8. linux下vim 选择文本,删除,复制,粘贴
  9. 字节跳动2019春招笔试——找零(JavaScript)
  10. 【转载】Android编译系统Makefile(Android.mk)写法
  11. 解决json日期格式问题的3种方法
  12. Oracle数据库基础知识_数值类型及函数
  13. mybatis-plus 自定义UpdateWrapper(一)实现列自增
  14. 固高运动控制卡学习8 --高速硬件捕获
  15. 计算机蓝屏解决,电脑蓝屏怎么解决,详细解决蓝屏方案
  16. JAR包中的MANIFEST.MF文件详解以及编写规范
  17. 明解C语言入门篇_第12章_结构体
  18. 【漏洞复现】RTF URL Moniker 的逻辑漏洞 | OLE2Link 漏洞(CVE-2017-0199)
  19. Game Center,移动游戏社交平台的勘探报告
  20. Label的属性、事件、方法

热门文章

  1. 图像四种基本类型简介
  2. 《海外社交媒体营销》导读
  3. mysql如何配置phpmyadmin_如何进行phpmyadmin配置 phpmyadmin快速配置方法【详细介绍】...
  4. mysql insert语句大全_MySQL中insert into语句的6种写法
  5. 集中监控计算机主要功能
  6. 阅读:面向电子商务的评论文本情感分析研究
  7. 7.Java面向对象-多态
  8. 概要设计说明书--文档模板
  9. 【深度学习 理论】Logistic Regression
  10. lua-resty-kafka 出现 no resolver defined to resolve的解决方案