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 绘图位置偏离内容请搜索开心学习网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持开心学习网!
您可能感兴趣
- html5 canvas 性能(基于html5 canvas做批改作业的小插件)
- 使用canvas画个正方形(canvas绘制树形结构可视图形的实现)
- 使用canvas的好坏(关于canvas绘制模糊问题的解决方法)
- canvas设置点击(Canvas高级路径操作之拖拽对象的实现)
- html5canvas画图有什么用(Html5基于canvas实现电子签名并生成PDF文档)
- canvas绘制二进制图片(Canvas获取视频第一帧缩略图的实现)
- canvas 缩放后字发虚(canvas 绘图时位置偏离的问题解决)
- canvas如何在网页上画图形(canvas绘制图片drawImage使用方法)
- canvas时钟代码(canvas实现烟花的示例代码)
- html5 canvas touch(html5 canvas手势解锁源码分享)
- canvas怎么获取内容(详解canvas.toDataURL报错的解决方案全都在这了)
- canvas实现滚动列表(Canvas实现贝赛尔曲线轨迹动画的示例代码)
- canvas绘制渐变图形(Canvas实现放大镜效果完整案例分析附代码)
- canvas 动画线段(canvas简单连线动画的实现代码)
- html5 canvas 特效(JavaScript canvas实现流星特效)
- jscanvas画折线图(js+canvas实现代码雨效果)
- 把宽体丰田86卖了,换成7.5代高尔夫GTI玩起姿态与性能并存的改装(把宽体丰田86卖了)
- 大众推出了第五代高尔夫GT(大众推出了第五代高尔夫GT)
- 换代在即,现在是抄底 7.5代 高尔夫的最佳时机吗(换代在即现在是抄底)
- 2020年大众7.5代高尔夫R终结特别版 最后的呐喊(2020年大众7.5代高尔夫R终结特别版)
- 七年前的这部剧有毒,全剧只有女主红到发紫,男主至今无人认识(七年前的这部剧有毒)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
热门推荐
- mysqldump 命令详解(mysqldump你可能不知道的参数)
- servu权限设置(Serv-U防溢出提权攻击解决设置方法)
- dockerfile构建mysql镜像并初始化(docker-compose基于MySQL8部署项目的实现)
- tracert命令图解(tracert命令怎么用?tracert命令使用详解)
- tomcat启动慢什么原因(Tomcat服务器响应过慢解决方案)
- python钉钉机器人(python钉钉机器人运维脚本监控实例)
- sql服务器停止后无法启动(SQL服务器无法启动的解决方法)
- vue 表格数据增加修改(vue element实现表格增加删除修改数据)
- vue三种判断条件(Vue中插槽和过滤器的深入讲解)
- sqlserver 怎么排序(SQLserver排序规则基本概念探索)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9