canvas笔记-在canvas中使用其他HTML元素
这里使用的原理是使用css把div中关于html的元素通过布局位置,以及透明相关的设置,将其设置到canvas上,这样看起来就是在canvas绘制的按钮。然后使用JavaScript获取按钮的数据或者其他数据设置到canvas中。
程序运行截图如下:
点击控制面板的按钮
再点击一个
源码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#canvas-wrapper{width: 1200px;height: 800px;position: relative;margin: 50px auto;}#canvas{border: 1px solid #aaaaaa;}#controller{position: absolute;top: 30px;left: 30px;background-color: rgba(0, 85, 116, 0.7);padding: 5px 20px 25px 20px;border-radius: 10px 10px;}#controller h1{color: white;font-width: bold;font-family: Microsoft Yahei;}#controller .color-btn{display: inline-block;padding: 5px 15px;border-radius: 6px 6px;font-size: 14px;margin-top: 10px;margin-right: 5px;text-decoration: none;}#controller #white-color-btn{background-color: white;}#controller #black-color-btn{background-color: black;}#controller #green-color-btn{background-color: green;}#controller #blue-color-btn{background-color: blue;}</style></head>
<body><div id="canvas-wrapper"><canvas id="canvas" style="border: 1px solid #aaa; display: block; margin: 50px auto;">当前浏览器不支持canvas</canvas><div id="controller"><h1>控制面板</h1><a href="#" class="color-btn" id="white-color-btn"> </a><a href="#" class="color-btn" id="black-color-btn"> </a><a href="#" class="color-btn" id="green-color-btn"> </a><a href="#" class="color-btn" id="blue-color-btn"> </a></div>
</div><script>window.onload = function(){let canvas = document.getElementById("canvas");canvas.width = 1200;canvas.height = 800;let context = canvas.getContext("2d");document.getElementById("white-color-btn").onclick = function(event){context.clearRect(0, 0, canvas.width, canvas.height);context.fillStyle = "white";context.fillRect(0, 0, canvas.width, canvas.height);return false;}document.getElementById("black-color-btn").onclick = function(event){context.clearRect(0, 0, canvas.width, canvas.height);context.fillStyle = "black";context.fillRect(0, 0, canvas.width, canvas.height);return false;}document.getElementById("green-color-btn").onclick = function(event){context.clearRect(0, 0, canvas.width, canvas.height);context.fillStyle = "green";context.fillRect(0, 0, canvas.width, canvas.height);return false;}document.getElementById("blue-color-btn").onclick = function(event){context.clearRect(0, 0, canvas.width, canvas.height);context.fillStyle = "blue";context.fillRect(0, 0, canvas.width, canvas.height);return false;}}</script></body>
</html>
这里解析下上面代码的部分逻辑,这里把canvas和按钮相关都放到id为canvas-wrapper的div中,在canvas-wrapper中的css使用position为relative也就是相对定位的元素。在id为controller中div中将position设置为absolute,也就是生成绝对定位的元素,然后设置下透明度啥的。
canvas笔记-在canvas中使用其他HTML元素相关推荐
- canvas笔记-扩展canvas的context及画椭圆及浏览器兼容问题
首先是扩展canvas的context 比如扩展一个画五角星的代码 <!DOCTYPE html> <html lang="en"> <head> ...
- canvas笔记-使用canvas画圆及点阵的使用
如下例子: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF- ...
- canvas笔记-使用canvas画矩形及各样式(透明)
程序运行截图如下: 源码如下: <!DOCTYPE html> <html lang="en"> <head><meta charset= ...
- html5 canvas 画阿迪达斯logo,HTML5 Canvas笔记——HTML5 Canvas绘图绘制太极图
HTML5 Canvas绘图绘制太极图 太极图 * { padding: 0; margin: 0; } body { } #myCanvas { background-color: #eee; } ...
- canvas笔记-canvas中用户与图形交互
运行截图如下: 点击某个圆后: 代码如下: <!DOCTYPE html> <html lang="en"> <head><meta ch ...
- canvas笔记-画三角形并计算其外心(含算法其他绘图框架类似)
程序运行截图如下: 源码如下: <!DOCTYPE html> <html lang="en"> <head><meta charset= ...
- canvas笔记-clip裁剪函数的使用及探照灯实例
在canvas中有clip函数,也就是裁剪,从原始画布中剪切任意形状和尺寸. 如下例子: <!DOCTYPE html> <html lang="en"> ...
- canvas笔记-globalAlpha和globaleCompositeOperation的使用
如下代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF- ...
- canvas笔记-阴影的使用
关于阴影有如下的几个属性 context.shadowOffsetX context.shadowOffsetY context.shadowBlur 其中blur的英文解释为模糊不清的,在canva ...
最新文章
- 关于ORA-01950: no privileges on tablespace 的解决
- Python3中 对local和nonlocal 关键字的改善认识(新手向)
- 窗口不小心拉到任务栏下面,窗口无法拖回桌面的解决办法
- bean 属性设置默认值_activiti7源码分析之引擎初始化与Bean注入
- leetcode513. 找树左下角的值(dfs)
- Kubernetes—如何批量删除对象资源?(二十三)
- DOM 其他一些特性
- Elastic ik插件配置热更新功能
- 记一次修复Mac和Win7双系统启动菜单的经历
- 2019网易校招(1星) 俄罗斯方块
- linux 获取无线网卡密码错误,解决linux下外接无线网卡报错问题
- Google Play安装应用一直在等待下载的解决方案
- 在电路中,耦合是什么?有哪些方式?
- opencv-python 中文显示在图像上
- 解压缩文件并将其中的excel文件汇总
- modbus tcp主站和从站_Modbus-RTU 一主多从PLC无线通讯经典案例
- qq申诉网站无法接到服务器,为什么我qq申诉不成功 - 卡饭网
- 复杂网络分析(5)----共引和文献耦合
- Anroid11有多个Launcher应用时,默认其中一个Launcher为启动Launcher,不用弹框选择Launcher
- lag和lead 分析函数