您可以看看下面的演示,并让我知道如何让代码在画布上绘制100%直线?鼠标向下拖动绘制直线时的问题并移动事件
$(function() {
var drawLine = false;
var theCanvas = document.getElementById('map');
var ctx = theCanvas.getContext('2d');
theCanvas.width = 420;
theCanvas.height = 300;
var canvasOffset = $('#map').offset();
$('#map').mousemove(function(e) {
if (drawLine === true) {
ctx.lineTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
ctx.stroke();
}
});
$('#map').mousedown(function() {
drawLine = true;
ctx.strokeStyle = 'blue';
ctx.lineWidth = 5;
ctx.lineCap = 'round';
ctx.beginPath();
ctx.moveTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
});
$(window).mouseup(function() {
drawLine = false;
});
});
#map{border:solid; margin-top: 50px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<canvas id="map"></canvas>
正如你可以看到代码工作正常,但我要的是画直线上绘制
感谢
那你试试? – 2015-02-05 18:10:02
将鼠标完美直线移动? ..如果E_p的回答不正确,我不知道我知道你在找什么。你能否编辑你的问题以提供更多信息? – mambrow 2015-02-05 18:23:44
@mambrow,我想要的是这样的示例http://jsfiddle.net/URWru/绘制直线,为什么你认为这不清楚? – Suffii 2015-02-05 18:27:36