如何使用 html 范围输入(滑块)更改 canvas 线宽?

How to change the canvas linewidth with html range input (slider)?

我正在画一张简单的图canvas。我想通过移动滑块动态更改画笔的粗细(线宽)。问题是线宽值确实会随着滑块的变化而相应变化。滑块的初始值分配给线宽,但是更改滑块不会导致线宽值发生变化。

html:

<input type="range" name="brushsize" min="0" max="20" id="brushSlider" step="1" value="5" onchange="this.setAttribute('value',this.value);">

js:

var brushSize = document.getElementById("brushSlider").value; 
context.lineWidth = brushSize;
<input type="range" name="brushsize" min="0" max="20"
 id="brushSlider" step="1" value="5" onchange="changeLineWidth(this.value);">

function changeLineWidth(brushSize){
   context.lineWidth = brushSize;
}

线宽值没有改变,因为您只设置了一次。您需要在输入上设置事件侦听器以在输入更改时更新线宽。

var brushSlider = document.getElementById("brushSlider"); 
context.lineWidth = brushSlider.value;

brushSlider.addEventListener("change", function () {
    context.lineWidth = brushSlider.value;
});