如何使用滑块输入更改Javascript中的填充[已解决]
我试图通过使用滑块输入来更改图像上的填充。这个想法是用户可以上传一张图片,并对其进行定制。其中一个选项是用于更改水平填充的滑块(每个滑块一个)。每个滑块的值介于-50到50之间,默认值为0。 例如,如果用户向左移动“水平填充滑块”(负值),则左右填充都将减少,如果向右移动滑块(正值),则左右填充都将增加 我已经用这些值创建了HTML滑块。然后,在javascript文件中,我为输入值创建了一个事件侦听器,并创建了一个函数来更改它,但根本不起作用 HTML代码:如何使用滑块输入更改Javascript中的填充[已解决],javascript,css,dom,input,slider,Javascript,Css,Dom,Input,Slider,我试图通过使用滑块输入来更改图像上的填充。这个想法是用户可以上传一张图片,并对其进行定制。其中一个选项是用于更改水平填充的滑块(每个滑块一个)。每个滑块的值介于-50到50之间,默认值为0。 例如,如果用户向左移动“水平填充滑块”(负值),则左右填充都将减少,如果向右移动滑块(正值),则左右填充都将增加 我已经用这些值创建了HTML滑块。然后,在javascript文件中,我为输入值创建了一个事件侦听器,并创建了一个函数来更改它,但根本不起作用 HTML代码: <form class="r
<form class="range-field mt-2">
<input type="range" min="-50" max="50" value="0" id="horizontal-padding"
step="2" />
</form>
谁能告诉我出了什么事?非常感谢
var slider = document.getElementById("horizontal-padding").value;
您希望访问HTML元素,而不是它的值。您应该删除“.value”,它就会工作。此外,我建议使用“输入”事件,因为只有在释放滑块时才会触发“更改”
另外,我假设您在试图更改画布之前已经选择了它。什么是
myCanvas
您还需要在js中选择它
var myCanvas = document.getElementById()
var slider = document.getElementById("horizontal-padding")
silder.addEventListener('change', () => {
myCanvas.style.padding = slider.value
});
答复:
要使其处于工作状态,需要进行许多更改
- 您正在使用
声明.value
。这并不指向元素,而是指向值滑块
- 您需要声明
变量以指向元素myCanvas
- 您需要为
更新添加一个单元。这可以是CSS
(最常见),px
,em
,rem
,vw
,等等。一个简单的整数(由vh
)不会将其截断滑块给出。值
在视觉上不能表示为负片,因为它不是设计为填充
低于值插入
。这意味着滑块转到0
没有多大意义。在下面的代码片段中,我将其更新到范围-50
0-100
代码:
例子:
var slider=document.getElementById(“水平填充”),
myCanvas=document.getElementById(“myCanvas”);
slider.addEventListener('change',function(){
myCanvas.style.padding=slider.value+“px”;
});代码>
画布{
边框:1px纯黑;
}
你的浏览器不支持HTML5画布
True,我在我的原始帖子中忘了提到它,但我已经声明了。谢谢你的回复,现在问题已经解决了。上面的第一个答案解决了这个问题。快速问题:如果我想做同样的事情,但是要做水平填充(仅左和右填充)呢?我尝试了这个方法,但不起作用:``mycanvas.style.padding=“0,slider.value+px,0,slider.value+px”```
var myCanvas = document.getElementById()
var slider = document.getElementById("horizontal-padding")
silder.addEventListener('change', () => {
myCanvas.style.padding = slider.value
});
var slider = document.getElementById("horizontal-padding"),
myCanvas = document.getElementById("myCanvas");
slider.addEventListener('change', function() {
myCanvas.style.padding = slider.value + "px";
});