2015-07-12 103 views
0

我在做一个简单的画布。我想通过移动滑块来动态改变画笔的粗细(线宽)。问题是线宽值与滑块相应地发生了变化。滑块的初始值分配给线宽,但更改滑块不会导致线宽值的更改。如何用html范围输入(滑块)更改画布线宽?

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; 

回答

4

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

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

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

谢谢克里斯。这工作完美! – Almac

1
<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; 
} 
+0

我试过但没有工作。线宽不会改变。 – Almac

+0

是的,你是对的,我错过了论点和任务..现在纠正。 – vinayakj

+0

太棒了!这也工作。非常感谢你。 – Almac