canvas 缩放后字发虚(canvas 绘图时位置偏离的问题解决)
类别:Web前端 浏览量:449
时间:2021-10-23 10:50:33 canvas 缩放后字发虚
canvas 绘图时位置偏离的问题解决使用 canvas 绘图时,指定的 li 大小一定不要超过该 li 所能获得的最大范围,否则绘制的点会跟实际位置发生偏离。
例如
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled 1</title> <style type="text/css"> .style1 { font-size: x-small; } </style> </head> <body > <li style="margin:2%"> <li id="test" style="width:800px;height:800px;background-color:#cbdad0d9"> <canvas id="container" onmousemove="mousemove(event)" onmousedown="mousedown()" onmouseup="mouseup()"></canvas> </li> </li> <script type="text/javascript"> var paint = false; var start = false; var canvas = document.getElementById("container"); canvas.width = 800; canvas.height = 800; var offsetY = canvas.offsetTop; var offsetX = canvas.offsetLeft; var y; var x; var context = canvas.getContext("2d"); function mousemove(e) { if (paint == true){ if (start == false){ context.moveTo(0, 0); start = true; } else { context.moveTo(x, y); } x = e.pageX - offsetX; y = e.pageY - offsetY; context.lineTo(x, y); context.stroke(); } } function mousedown(event) { paint = true; console.log("down") } function mouseup(event) { paint = false; console.log("up") } </script> </body> </html>
上例中可以正确的绘制线图。
如果更改为:
<li style="margin:20%"> <li id="test" style="width:800px;height:800px;background-color:#cbdad0d9"> <canvas id="container" onmousemove="mousemove(event)" onmousedown="mousedown()" onmouseup="mouseup()"></canvas> </li> </li>
由于 canvas 所需 width 800px 无法满足,因此绘制线图时,与实际鼠标位置发生偏离。
到此这篇关于canvas 绘图时位置偏离的问题解决的文章就介绍到这了,更多相关canvas 绘图位置偏离内容请搜索开心学习网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持开心学习网!
您可能感兴趣
- canvas怎么获取内容(详解canvas.toDataURL报错的解决方案全都在这了)
- 使用canvas的好坏(关于canvas绘制模糊问题的解决方法)
- canvas宽高技巧(canvas画图被放大且模糊的解决方法)
- canvas绘制流星(使用canvas实现黑客帝国数字雨效果)
- 使用canvas画个正方形(canvas小画板之平滑曲线的实现)
- 使用canvas画个正方形(canvas绘制树形结构可视图形的实现)
- canvas怎么压缩图片(使用canvas压缩图片大小的方法示例)
- canvas 中增加组件(如何在Canvas中添加事件的方法示例)
- canvas跟随鼠标绘制(如何在Canvas上的图形/图像绑定事件监听的实现)
- html5canvas图形怎么打印(HTML5 Canvas 实现K线图的示例代码)
- canvas绘制二进制图片(Canvas获取视频第一帧缩略图的实现)
- canvas实现滚动列表(Canvas实现贝赛尔曲线轨迹动画的示例代码)
- html5的canvas图形绘制技术(详解HTML5 Canvas标签及基本使用)
- canvas如何将一组数据生成柱子图(Canvas环形饼图与手势控制的实现代码)
- html5 canvas绘图(使用html5 canvas绘制圆环动效)
- canvas画法教学(手把手教你实现一个canvas智绘画板的方法)
- 深度 倒牛奶 这一幕为何又在美国上演(深度倒牛奶)
- 美国数十万加仑牛奶倒下水道怎么回事 原因曝光令人心痛(美国数十万加仑牛奶倒下水道怎么回事)
- 探索中国神秘文字(探索中国神秘文字)
- 重温《蜗居》 宋思明选中海藻为红颜知己,纯属巧合,与爱无关(宋思明选中海藻为红颜知己)
- 越南旅游攻略(越南旅游攻略自由行)
- 成都旅游攻略(成都旅游攻略自由行最佳线路)
热门推荐
- 面试二叉树问的多吗(面试官:谈谈你对索引的认知系列之B-树)
- mysql数据库延时监控(Mysql sql慢查询监控脚本代码实例)
- js的异步请求(浅谈JS三座大山之异步和单线程)
- zabbixagent开发环境(Linux zabbix agent部署及配置方法详解)
- php 实例代码解析(PHP反射学习入门示例)
- Visual Studio中 sln 和 suo 文件
- linux看系统内存大小(Linux体检,了解你的Linux状态网络IO,磁盘,CPU,内存)
- html5基础知识入门(萌新HTML5 入门指南二)
- js函数对象
- python分词操作(Python英文文本分词无空格模块wordninja的使用实例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9