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 绘图位置偏离内容请搜索开心学习网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持开心学习网!
您可能感兴趣
- htmlcanvas的使用(html2canvas生成清晰的图片实现打印的示例代码)
- canvas实现字体粒子爆炸特效(javascript canvas实现雨滴效果)
- canvas如何开启(canvas实现手机的手势解锁的步骤详细)
- 使用canvas画个正方形(canvas小画板之平滑曲线的实现)
- 优秀的canvas背景特效网站(基于canvas实现超炫酷的流水灯效果)
- canvas里面图片如何获取(canvas生成带二维码海报的踩坑记录)
- 前端ui 滑动条(AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码)
- html 设置canvas的背景图可缩放(浅析canvas元素的html尺寸和css尺寸对元素视觉的影响)
- js使用canvas(JavaScript canvas实现七彩时钟效果)
- canvas如何保存当前的图片(canvas如何实现多张图片编辑的图片编辑器)
- html5canvas功能介绍(Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 附转换公式)
- html使用canvas画矩形(CSS、SVG和canvas分别实现文本文字纹理叠加效果)
- canvas如何调试(关于canvas.toDataURL 在iOS运行失败的问题解决)
- canvas两种形式动画(用canvas做一个DVD待机动画的实现代码)
- 使用canvas的好坏(关于canvas绘制模糊问题的解决方法)
- canvas怎么压缩图片(使用canvas压缩图片大小的方法示例)
- 一道高中题-求杯子的高度(一道高中题-求杯子的高度)
- 网坛停摆三巨头亏损惨重,费德勒跌幅88 纳达少赚2400万(网坛停摆三巨头亏损惨重)
- Beyond 版本《无人深空》主线任务攻略 阿特拉斯之道(版本无人深空主线任务攻略)
- 全球科技界最有钱大佬TOP 15 你知道几位(全球科技界最有钱大佬TOP)
- 2主力后腰缺阵 泰山队奇兵有望获重用,赛季0出场,迎来中超首秀(泰山队奇兵有望获重用)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
热门推荐
- docker镜像配置的挂载路径(解决docker挂载的目录无法读写问题)
- 创建jsp时如何默认生成的是utf-8(js判断文件是否为utf-8编码的方法)
- 云计算是一种服务的概念(云服务的意思,云服务是云计算吗?)
- python 文本文件读取方法(Python逐行读取文件中内容的简单方法)
- js实现商品添加(js实现购物网站放大镜功能)
- python一组数字求和(Python3数字求和的实例)
- jspromise原理(JavaScript使用promise处理多重复请求)
- 阿里云如何部署自己的服务器(如何快速搭建一个阿里云服务器)
- python正式参数(详解Python的三种可变参数)
- css3无缝滚动效果(CSS3 制作的图片滚动效果)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9