canvas 绘图时位置偏离的问题解决
导读:收集整理的这篇文章主要介绍了canvas 绘图时位置偏离的问题解决,觉得挺不错的,现在分享给大家,也给大家做个参考。 使用 canvas 绘图时,指定的 div 大小一定不要超过该 div 所能获得的最大范围,否则绘制的点会跟实际...
收集整理的这篇文章主要介绍了canvas 绘图时位置偏离的问题解决,觉得挺不错的,现在分享给大家,也给大家做个参考。 使用 canvas 绘图时,指定的 div 大小一定不要超过该 div 所能获得的最大范围,否则绘制的点会跟实际位置发生偏离。
例如
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 >
div style="margin:2%">
div id="test" style="width:800px;
height:800px;
background-color:#cbdad0d9">
canvas id="container" onmouSEMove="mousemove(event)" onmousedown="mousedown()" onmouseup="mouseup()">
/canvas>
/div>
/div>
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>
上例中可以正确的绘制线图。
如果更改为:
div style="margin:20%">
div id="test" style="width:800px;
height:800px;
background-color:#cbdad0d9">
canvas id="container" onmousemove="mousemove(event)" onmousedown="mousedown()" onmouseup="mouseup()">
/canvas>
/div>
/div>
由于 canvas 所需 width 800px 无法满足,因此绘制线图时,与实际鼠标位置发生偏离。
到此这篇关于canvas 绘图时位置偏离的问题解决的文章就介绍到这了,更多相关canvas 绘图位置偏离内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: canvas 绘图时位置偏离的问题解决
本文地址: https://pptw.com/jishu/586251.html
