我目前正在开发一个使用HTML 5
和JavaScript
用于绘制图形的 iOS 应用程序。
我刚刚做了一个示例应用程序。
我的代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var a = 0;
var b = 0;
function init()
{
var can = document.getElementById('can');
can.addEventListener("click",click, false);
}
function click(event)
{
var can = document.getElementById('can');
var c = can.getContext('2d');
var parentPosition = getPosition(event.currentTarget);
c.lineWidth = 1;
c.strokeStyle = '#FFFFFF';
c.beginPath();
c.moveTo(a, b);
a = event.clientX - parentPosition.x;
b = event.clientY - parentPosition.y;
c.lineTo(a, b);
c.stroke();
}
function getPosition(element)
{
var xPosition = 0;
var yPosition = 0;
while (element)
{
xPosition += (element.offsetLeft - element.scrollLeft + element.clientLeft);
yPosition += (element.offsetTop - element.scrollTop + element.clientTop);
element = element.offsetParent;
}
return { x: xPosition, y: yPosition };
}
</script>
</head>
<body oncopy='copy();' onpaste='paste();'onload ='init();'>
<canvas id="can" style="height:300px;width:300px;background-color:black;">Oops!</canvas>
</body>
</html>
我的问题:
当用户点击屏幕时,我正在从前一点画一条线到该特定点。
但在我的情况下,当我点击屏幕时,这条线会被绘制到其他点。假设我点击点(100,100),这条线将被绘制到(100,某个任意值)。Y 位置总是错误的。
我做了什么:
- 在模拟器上测试过
- 在设备上测试过
- 在火狐上测试过
- 在 Chrome 上测试过
所有结果都是一样的。我找不到问题。我提醒了点击x
和y
坐标。它来正确。唯一的问题是绘图功能。
截图:
如您所见,X 坐标是正确的。但是 Y 坐标总是出错。
请帮助我,在此先感谢。