1
我試圖用一個簡單的點擊功能來改變畫布(如油漆)中的手繪圖線。但是當我點擊這個div時,之前的繪圖也會得到新的lineWidth,並且不會保留它的原始狀態。何可以解決這個問題嗎?帆布/ JS:不能改變lineWith而不改變以前的行
的JavaScript
var el = document.getElementById('canvas');
var ctx = el.getContext('2d');
var isDrawing;
var redStroke= ctx.strokeStyle = "#FF0000";
el.onmousedown = function(e) {
isDrawing = true;
ctx.moveTo(e.offsetX, e.offsetY);
//ctx.lineWidth=1;->default
};
el.onmousemove = function(e) {
if (isDrawing) {
ctx.lineTo(e.offsetX, e.offsetY);
ctx.stroke();
}
};
el.onmouseup = function() {
isDrawing = false;
};
$('#medium').click(function(){
var mediumStroke=ctx.lineWidth=5;
mediumStroke;
});
$('#large').click(function(){
var largeStroke=ctx.lineWidth=20;
largeStroke;
});
HTML:
<div class="container">
<canvas id="canvas" width="800" height="500"></canvas>
<div class= "stroke">
<p id="medium">Medium Stroke</p>
<p id="large">Thick Stroke</p>
</div>
</div>
再次感謝@maóis:)仍然在這個新手.. – glassraven
不客氣:) –
這樣做,你正在繪製先前的路徑在每個鼠標移動,這將創建文物。清除畫布,或者存儲以前的座標,並在每個鼠標移動時創建一個新的路徑。 – Kaiido