我試圖簡單地在畫布標籤上跟蹤鼠標,並記錄它距離圓心的距離。問題是,它稍微關閉。畫布標籤在我的頁面上移動
當我在圓的右側時,在顯示r(半徑= 200)的距離之前,鼠標必須在圓內約1釐米。當我在圈子的左側時,我必須在圈外約1釐米處記錄r的距離。就像這個圈子向右移動了一點。
我試圖用a fiddle重現這一點,但奇怪的是,小提琴是完美的;它是現貨。
所以我想我的問題是,什麼會導致我的畫布標籤在我的頁面上移動約1釐米(但不是在小提琴)。我需要更好的DOCTYPE嗎?我在下面重現了我的整個源代碼。我已經在FF和Chrome中進行了測試,結果相同。
編輯
我也試過<!DOCTYPE html>
無濟於事。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var context = document.getElementById("myCanvas").getContext("2d");
context.beginPath();
context.moveTo(250, 250);
context.arc(250, 250, 200, 0, Math.PI * 2, false);
context.closePath();
context.fillStyle = 'rgb(255,100,0)';
context.fill();
$("canvas").mousemove(function (e) {
var x = e.pageX;
var y = e.pageY;
var dist = Math.round(Math.sqrt(Math.pow(x - 250.0, 2) + Math.pow(y - 250.0, 2)));
console.log(dist);
});
});
</script>
</head>
<body>
<canvas id="myCanvas" width="800" height="800">
</canvas>
</body>
</html>
它似乎加入'* {保證金:0,填充:0,border:0}'解決了這個問題,但是,我不知道額外的填充來自哪裏。 – 2012-01-12 00:30:15
@Jesse - 謝謝 - 我在開車回家的時候也有同樣的想法。這是一個有效的答案,所以把它扔掉,所以我可以upvote :) – 2012-01-12 00:32:22