效果图,如下 它会随着鼠标的移动而移动 ,小球的个数也会随之由大变小

总代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin:0;padding: 0;}</style>
</head>
<body><canvas id="cont">你好呀</canvas><script>// 使用原生js操作canvas// 1.获取画布var canvas = document.querySelector('#cont')// 2.获取画布的上下文var ctx = canvas.getContext('2d')// 画布宽高// 2.获取窗口可视区域宽高var w = document.documentElement.clientWidth-6var h = document.documentElement.clientHeight-6// 3.更新canvas宽高canvas.width = wcanvas.height = h// 产生随机数function r(num) {return parseInt(Math.random()*num)}// 1.创建小球类function Ball(x,y) {this.x = x this.y = ythis.r = 40  // [10,60)// 随机颜色this.color = '#'+parseInt(Math.random()*0xffffff).toString(16) }// 2.定义小球显示方法Ball.prototype.show = function () {this.r--drawCircle(this.x,this.y,this.r,this.color) //画小球}// 4.创建一个小球的数组(一个大篮子)var ballArr = []// 鼠标滑动事件window.onmousemove=function(e) {var ball = new Ball(e.x,e.y)ballArr.push(ball)ball.show()}//5.小球运动setInterval(() => {// 清除画布ctx.clearRect(0,0,w,h)for (var i = 0; i < ballArr.length; i++) {// 判断:如果小球半径r小于0,需要从数组中删除var ball = ballArr[i]if(ball.r <= 0 ) {ballArr.splice(i,1)} else{ball.show()}}}, 10);/*** 画半圆弧* @description:* @param {type} * @return: */function drawCircle(x,y,r,color){ctx.beginPath()ctx.arc(x,y,r,0,Math.PI*2)ctx.fillStyle= color || '#000'ctx.fill()}</script>
</body>
</html>

canvas 之 炫彩小球相关推荐

  1. 超多经典 canvas 实例,动态离子背景、移动炫彩小球、贪吃蛇、坦克大战、是男人就下100层、心形文字等等等...

    超多经典 canvas 实例 普及:<canvas> 元素用于在网页上绘制图形.这是一个图形容器,您可以控制其每一像素,必须使用脚本来绘制图形. 注意:IE 8 以及更早的版本不支持 &l ...

  2. 彩色点缀,canvas炫彩小球样式背景

    canvas炫彩小球样式背景 效果展示 代码如下 1.css * {margin: 0;padding: 0; }.backCanvas canvas {display: block;margin: ...

  3. Canvas跟随鼠标炫彩小球

    跟随鼠标炫彩小球 canvas没有让我失望,真的很有意思 实现效果 超级炫酷 实现原理 创建小球 给小球添加随机颜色,随机半径 鼠标移动通过实例化,新增小球 通过调用给原型新增的方法,来实现小球的动画 ...

  4. canvas教程7-炫彩小球

    文章目录 一.炫彩小球 二.效果图 篇章 一.炫彩小球 <!DOCTYPE html> <html lang="en"> <head><m ...

  5. canvas制作点击/鼠标移动炫彩小球效果

    <script>const canvas = document.getElementById('myCanvas')canvas.setAttribute('width', documen ...

  6. @description iPhoneX炫彩渐变背景实现

    /*** @author zhangxinxu(.com)* @description iPhoneX炫彩渐变背景实现* @link http://www.zhangxinxu.com/wordpre ...

  7. 炫彩logo粒子效果

    前端开发whqet,csdn,王海庆,whqet,前端开发专家 昨天我们学习了利用requestAnimationFrame优化动画控制,然后就忍不住冲动,在fork别人codepen的基础上,实现了 ...

  8. 互动媒体技术——基于p5.js实现动态图形临摹与拓展:炫彩光影的千变万化!

    博文索引目录: 1. 引言 2. 临摹结果对比 3. 临摹过程 3.1 准备工作 3.2 原图规律--语言描述 3.3 原图规律--数学与代码描述 3.4 完整代码 4. 创意拓展 4.1 拓展一-- ...

  9. 【Micropython】发光二极管手工制作炫彩跑马灯

    2019独角兽企业重金招聘Python工程师标准>>> 先甩锅 做完后才发现最后一个灯坏了,就坏了一个灯也不好意思去找淘宝店家,大家视频凑合着看把.不过并不影响实验效果.因为这个发光 ...

  10. 炫彩界面库使用方法问题记录

    1. 'ele_event' : undeclared identifier  'RegisterAll': identifier not found 在使用炫彩界面库时,如果遇到以上错误,一般是由于 ...

最新文章

  1. linux tcp重传多会导致软中断在各个核很不均匀么?
  2. VMware ESXi客户端连接控制台时提示“VMRC控制台连接已断开...正在尝试重新连接“的解决方法
  3. 71道Android开发面试题
  4. 开博首发2017年1月13日开博大吉
  5. wota dance
  6. QT的QStandardItemModel类的使用
  7. android 获得手机外插SD卡 存储路径和存储空间
  8. Linux dd 命令
  9. magento memcache缓存配置
  10. BitComet加速調整法---让你的BT飞起来!
  11. 真正的帅哥没人说帅_“浩南哥”这话你敢信?郑伊健:在香港,没人夸我帅
  12. sql server存储过程解密
  13. [bzoj4025] 二分图
  14. 【UVALive - 6922】Reverse Polish Notation【贪心】
  15. 谷歌app使用的是什么字体_如何使用Google字体
  16. 耦合器滤波器衰减器无源器件自动化测试软件系统,纳米NSAT-1000
  17. Java12之switch升级语法在Eclipse中的穿透问题
  18. 怎么美化Typora的标题格式
  19. USACO/ratios 3.2.4
  20. 我喜欢这首歌......

热门文章

  1. Xmind各种删除图标的方法
  2. 我的挨踢人生(16)——往事如云烟
  3. linux查看wifi信号命令_linux无线网络命令
  4. [转] 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
  5. Linux 查看与修改mtu值
  6. JavaScript三种弹出框(alert、confirm、prompt),一次性全弄清!
  7. Glide遇到重定向url产生的bug分析以及解决
  8. H264 概念之 I P B 帧
  9. c语言中.def文件,VC++中的.DEF文件详解
  10. Android开发自定义水印图片