canvas绘制随机大小颜色泡泡,鼠标单击后变大变淡消失

2023-10-31

一、canvas随机渲染泡泡,鼠标单击后变大变淡消失

完整代码如下:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
		svg{
			background:#f2f2f2;
		}
	</style>
  <script></script>
 </head>
 <body>
		<svg id="svg" width="500" height="400">
  		<!-- <circle cx="60" cy="60" r="50" stroke="#f00" stroke-width="10" fill="green" id="circle"></circle>-->
  	</svg> 

	<script>
		var c1=document.createElementNS('http://www.w3.org/2000/svg','circle');
		var cxs=[];
		var cys=[];
		var rs=[];
		var fills=[];
		var circles=[];
		for(var i=0;i<5;i++){
			cxs[i]=Math.floor(Math.random()*500);
			cys[i]=Math.floor(Math.random()*400);
			rs[i]=Math.floor(Math.random()*75+50);
			fills[i]=randColor();
			circles[i]=document.createElementNS('http://www.w3.org/2000/svg','circle');
			circles[i].setAttribute('cx',cxs[i]);
			circles[i].setAttribute('cy',cys[i]);
			circles[i].setAttribute('r',rs[i]);
			circles[i].setAttribute('fill',fills[i]);
			circles[i].onclick=function(){
				var me=this;
				console.log(me);
				var r=me.getAttribute('r');
				console.log(r);
				var o=me.getAttribute('opacity');
				console.log(o);
				if(o===null){o=1;}
				var timer=setInterval(function(){
					r++;
					o-=0.01;
					me.setAttribute('r',r);
					me.setAttribute('opacity',o);
					if(o<=0){
						clearInterval(timer);
						svg.removeChild(me);
					}
				},10);/**/
			}
			svg.appendChild(circles[i]);
		}

		function randColor(){
			var r=Math.floor(Math.random()*155+100);
			var g=Math.floor(Math.random()*155+100);
			var b=Math.floor(Math.random()*155+100);
			return 'rgba('+r+','+g+','+b+')';
		}
	</script>
 </body>
</html>

二、鼠标单击后,canvas再绘制随机大小颜色泡泡后变大消失(可以给小孩玩hahaha~)

 完整代码如下:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
		svg{
			background:#f2f2f2;
		}
	</style>
  <script></script>
 </head>
 <body>
		<svg id="svg" width="1500" height="900"></svg> 

	<script>
		svg.onclick=function(event){
			var x=event.offsetX;
			var y=event.offsetY;
			draw(x,y);
		}
		function draw(x,y){
			var cx=x;
			var cy=y;
			var r=Math.floor(Math.random()*270+30);
			var circle=document.createElementNS('http://www.w3.org/2000/svg','circle');
			circle.setAttribute('cx',cx);
			circle.setAttribute('cy',cy);
			circle.setAttribute('r',r);
			circle.setAttribute('fill',randColor());
			svg.appendChild(circle);
			var timer=setInterval(function(){
				r++;
				circle.setAttribute('r',r);
				var opa=circle.getAttribute('opacity');
				if(opa===null){opa=1;}
				opa-=0.01;
				circle.setAttribute('opacity',opa);
				if(opa<=0){clearInterval(timer);}
			},10);
		}
		function randColor(){
			var r=Math.floor(Math.random()*155+100);
			var g=Math.floor(Math.random()*155+100);
			var b=Math.floor(Math.random()*155+100);
			return 'rgba('+r+','+g+','+b+')';
		}
	</script>
 </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

canvas绘制随机大小颜色泡泡,鼠标单击后变大变淡消失 的相关文章

  • 使用 jquery 淡入/淡出

    我正在研究我的学生项目 我是新的 jquery 对于该项目 我必须使用 jquery 来增强一些功能 并且我已经学到了很多来执行基本任务 但我陷入了一些非常令人困惑的事情 我的一个脚本实际上在鼠标悬停在功能上时更改了 div 容器的图像 功
  • 使用 Javascript 实现 Tinder 风格的拖放手势?

    我正在尝试找出哪些库可以用于仅使用 Javascript 的 Tinder 风格拖放手势 需要创建一个响应拖动手势的 HTML 元素 触摸并按住时 允许元素跟随用户的手指移动 当用户移开手指时 该元素会 动画回到原来的位置 如果元素在释放时
  • 如果Functions是javascript中的对象,为什么function.constructor指向Function而不是Object?

    当像这样从窗口对象创建以下函数时 function userInfo 既然函数是对象 为什么 userInfo constructor 显示 Function 而不是 Object 当使用以下内容时 它甚至显示函数而不是对象 Functio
  • 如何在React-Native中选择ListView的一项?

    我是 React Native 的新手 我想使用 ListView 选择一项 当我第一次按下 item 时 ListView renderRow 被调用 但终究不起作用 我该如何修复这个错误 我的问题出在哪里 我写了一个演示here htt
  • 如何使用 Underscore 获取 JavaScript 数组中的重复项

    我有一个数组 我需要重复的项目并根据特定属性打印这些项目 我知道如何使用 underscore js 获取唯一项目 但我需要找到重复项而不是唯一值 var somevalue name john country spain name jan
  • Javascript 自时间戳以来经过的时间

    我试图通过将其存储在变量中来 缓存 一些信息 如果 2 分钟过去了 我想获取 实时 值 调用 url 如果 2 分钟还没有过去 我想从变量中获取数据 我基本上想要的是 if time passed is less than 2 minute
  • 使用 Charts.js 禁用动画

    我在使用 Charts js 关闭动画时遇到一些问题 这是我的代码 var pieData value 30 color F38630 value 50 color E0E4CC value 100 color 69D2E7 var myP
  • 粉碎一个元素,向随机方向发送碎片

    我试图 粉碎 一个元素 例如 一个图像 并将其碎片朝随机方向飞行 当碎片到达目的地时 即x距离 以像素为单位 它们变成原始图像的较小版本 jQuery UI 的explode http api jqueryui com explode ef
  • 如何使用 console.log 省略文件/行号

    如今 您可以在 Chrome 的控制台中编写非常好的东西 查看this https developer chrome com devtools docs tips and tricks关联 我也做了一个截图 正如您在屏幕截图中看到的那样 文
  • Chart.js - 如何将数组集合推入数据集

    我一直在尝试多种方法将数组集合推送到数据集中 任何人都可以帮助我根据下面的代码将数组推入堆积图表中 这是例子 Codepen 堆叠栏 https codepen io narendrajadhav pen abzpWam JavaScrip
  • Javascript“命名空间”和 jQuery AJAX

    我正在使用此处列出的建议 http www odetocode com articles 473 aspx http www odetocode com articles 473 aspx 使用模拟的JavaScript AJAX网络聊天系
  • React JS“this”没有按预期工作

    我有下面的代码 save function var this this console log this refs itemText this setState isEditing false function console log In
  • jQuery 如何通过不同的列值计算表中的行数

    如何按表列计算不同的表行 Example table thead tr th NAME th th TECHNOLOGY th tr thead tbody tr td john td td jQuery td tr tr td mark
  • 如何在 Next.js 中正确使用 Mongoose 模型?

    我正在使用 TypeScript 和 MongoDB Mongoose 构建 Next js 应用程序 我在使用 Mongoose 模型时开始遇到错误 这导致它们在每次使用模型时都尝试覆盖模型 导致模型覆盖错误的代码 import mong
  • javascript 中一次仅选中一个复选框

    I have 3复选框 我只想1一次选中的复选框 下面是我的 html 小提琴 JS小提琴 https jsfiddle net n03jLhqa 我想要这个工作在IE8还请建议如何做 这个怎么样 fiddle http jsfiddle
  • 删除 cookie php

    我正在尝试创建一个带有登录系统的平台 并将用户名和密码存储在cookie中 以使用户即使关闭浏览器然后再次输入也能保持登录状态 我设法保存了cookie 但我不知道如何制作注销按钮 这是代码 function logout body app
  • 如何与使用 child_process.spawn 创建的新创建的服务器交互

    我正在尝试为我的私人托管的 反恐精英全球攻势 服务器制作一个前端 当我点击运行服务器时 在前端 一切正常 服务器启动并记录到控制台 但是如何查看服务器IP地址 服务器中的玩家等信息呢 这是我到目前为止运行服务器的内容 router post
  • 限制线的长度

    我正在尝试画一条代表 弹弓 的线 并且希望它具有最大拉伸长度 在 p5 中 我在位置和位置之间画了一条线 line posA x posA y posB x posB y posA 是鼠标 x 和 y posB 是画布上圆的位置 我想要做的
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1

随机推荐

  • MySQL 学习笔记(基础)

    首先解释数据库DataBase DB 即存储数据的仓库 数据经过有组织的存储 数据库管理系统DataBase Management System DBMS 管理数据库的软件 SQL Structured Query Language 结构化
  • python操控xlsx

    pywin32 一个简单的打开关闭 注意office要正版激活 pip install pywin32 import time import os import win32com client as win32 Start excel os
  • C#中 yield return 与 yield break

    using System using System Collections public class List public bool onOff false public static IEnumerable ForExample yie
  • Java环境搭建 包括(JDK+idea IDE集成开发环境)

    为什么要搭建环境 写代码在哪里写 其实哪里都可以写的大佬 只要可以写出代码即可 代码写完了怎么运行 怎么看到效果 需要java运行环境啊大佬 Java代码运行环境 一次编译处处可用 Java虚拟机 也称JVM Java运行代码 JRE包括J
  • Laravel框架05:模型和自动验证

    Laravel框架05 模型和自动验证 一 模型 AR模式 概述 二 定义模型 三 调用模型 四 基本操作 1 添加数据 AR模式 Request 2 查询数据 3 修改操作 AR模式 update 4 删除操作 五 控制器验证 1 基本语
  • Matlab中imwrite函数使用

    目录 语法 说明 示例 将灰度图像写入 PNG 将索引图像数据写入 PNG 用 MATLAB 颜色图写入索引图像 将真彩色图像写入 JPEG 将多个图像写入 TIFF 文件 写入 GIF 动画 imwrite函数的作用是将图像写入图形文件
  • Linux安装LAMP(Linux+Apache+MySQL+PHP)(二),安装配置Discuz论坛(centos7)

    文章目录 一 Linux安装LAMP环境 二 安装配置Discuz论坛 三 管理Discuz论坛网站 一 Linux安装LAMP环境 具体操作参考博客 https blog csdn net renfeigui0 article detai
  • 小程序云开发中如何生成pdf?

    实践证明用方案1才是好的我要生成的pdf有点复杂 使用方案2太卡了 云函数受不了 体验很差 云函数 图片 转 pdf const cloud require wx server sdk const PDFDocument StandardF
  • 使用html+css+js实现简易计算器

    使用html css js实现简易计算器 效果图如下 html代码如下
  • 华为云云耀云服务器L实例评测|使用宝塔面板管理服务器,并搭建个人博客网站

    作者简介 一名云计算网络运维人员 每天分享网络与运维的技术与干货 公众号 网络豆 座右铭 低头赶路 敬事如仪 个人主页 网络豆的主页 目录 前言 介绍 一 购买使用华为云云耀服务器 二 使用宝塔面板管理服务器 1 初始化宝塔面板 管理日志
  • easyui的filebox组件实现多文件上传

    html代码 div class easyui panel title 上传文件 style width 100 padding 30px 70px 50px 70px div
  • 基于poi的word更具标题截取文件

    maven依赖
  • 【Golang 接口自动化05】使用yml管理自动化用例

    目录 YAML 基本语法 对象 键值对的集合 key value 数组 一组按顺序排列的值 字面量 单个的 不可再分的值 数字 字符串 布尔值 yml 格式的测试用例 定义yml文件 创建结构体 读取yml文件中的用例数据 调试运行 总结
  • KEIL5识别不到DAP

    win11系统有时会识别不出DAP仿真器 如果用管理员身份打开KEIL和USB输入设备更新驱动程序都不能解决问题的话 不妨试试我这个办法 打开设备管理器 在这里选择卸载设备之后再重新插拔一下 电脑就能正确识别为符合HID标准的数字化机器 K
  • 解决使用ssm时前后端传参乱码的问题

    乱码分为两种 第一种是响应乱码 第二种是请求乱码 而前端传入后台又有两种请求区别 POST和GET 这两种又有两种不同的乱码处理方式 话不多说 直入主题 先讲如何处理前端传给后台的乱码 1 GET请求中文乱码处理 当创建一个tomcat项目
  • ideaic安装教程_IntelliJ IDEA安装图文教程

    IntelliJ IDEA 是 java语言开发的集成环境 在业界被公认为最好的 java开发工具之一 尤其在智能代码助手 代码自动提示 重构 J2EE支持 各类版本工具 git svn等 JUnit CVS整合 代码分析 创新的 GUI设
  • gitee的使用和HTTP协议

    git git 个人使用 1 创建本地仓库 初始化仓库 git init 2 创建远程仓库 gitee 3 记录远程仓库地址 4 将本地的代码文件提交到远程仓库 5 git add git add gitignore node module
  • react如何渲染包含html标签元素的字符串

    如何渲染包含html标签元素的字符串 最近有个搜索替换的需求 用户可以输入关键字信息来匹配出对应的数据 然后对其关键字进行标记显示 如下图所示 实现上面的需求的思路就是前端去判断检索内容 将内容中对应的关键字设置一个背景颜色的样式 代码如下
  • 计算机辅助断层摄影,显微计算机辅助断层摄影技术在牙周病学中的应用.pdf

    显微计算机辅助断层摄影技术在牙周病学中的应用 国际口腔医学杂志 第 34卷 第6期 2007年11月 430 InternationalJournalofStomatologyVol 34No 6Nov 2007 显微计算机辅助断层摄影技术
  • canvas绘制随机大小颜色泡泡,鼠标单击后变大变淡消失

    一 canvas随机渲染泡泡 鼠标单击后变大变淡消失 完整代码如下