我試圖通過單擊並拖動鼠標在畫布上繪製。我的問題是,除了線條質量很差(我想要一個更明顯的邊框)這一事實之外,它僅在0,0時才考慮鼠標的位置。當我將鼠標移動到較低的角落時,線條與其距離增加的距離與我在畫布中間時的距離相同,線條已經不在其中。 我有我的代碼爲:http://jsfiddle.net/ajTkP/12/用JavaScript繪製光標在畫布上的位置
我也將它張貼在這裏:
var MDown = false;
var Color = 'blue';
var Canvas = document.getElementById('canvas');
var Context = Canvas.getContext('2d');
Canvas.onselectstart = function() { return false; };
Canvas.unselectable = "on";
Canvas.style.MozUserSelect = "none";
Canvas.onmousedown = function(e) {
MDown = true;
Context.strokeStyle = Color;
Context.lineWidth = 3;
Context.lineCap = 'round';
Context.beginPath();
Context.moveTo(e.pageX - Position(Canvas).left, e.pageY - 5);
}
Canvas.onmouseup = function() { MDown = false; };
Canvas.onmousemove = function(e) {
if (MDown) {
Context.lineTo(e.pageX - Position(Canvas).left, e.pageY - 5);
Context.stroke();
}
}
function Position(el) {
var position = {left: 0, top: 0};
if (el) {
if (!isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
position.left += el.offsetLeft;
position.top += el.offsetTop;
}
}
return position;
}
感謝您的幫助!
你救了一個人的生命。上帝祝福你。任何提示使線更平滑?再次感謝! – ali
僅供參考,這是更好地做到這一點'window.onmousemove'太行會被卡住,當你搬出該地區http://jsfiddle.net/DerekL/ajTkP/14/ –