私は現在、グラフを使用HTML 5
して描画するための iOS アプリに取り組んでいます。JavaScript
サンプルアプリを作成しました。
私のコード:
<!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 位置は常に間違っています。
私がしたこと:
- シミュレーターでテストしました
- デバイスでテストしました
- Firefoxでテストしました
- Chromeでテストしました
すべての結果は同じです。問題が見つかりませんでした。クリックしx
てy
座標をアラートしました。正しく来ています。唯一の問題は描画機能にあります。
スクリーンショット:
ご覧のとおり、X 座標は正しいです。しかし、Y座標は常に間違っています。
助けてください、よろしくお願いします。