【发布时间】:2021-03-04 17:32:36
【问题描述】:
我有一个小问题,我将非常感谢任何答案。
一般来说,我的代码中有图片的上传,还有改变它的高度的输入。
HTML 代码:
<p>Height</p>
<input type='range' min='1' max='100' step='1' value='30' class='range' />
这是刚刚上传图片时的 JS 代码:
const image = document.querySelector('.image')
range.value = image.height
改变高度的JS代码:
const range = document.querySelector('.range')
range.addEventListener('mousemove', () => {
let x = range.value
let color = 'linear-gradient(90deg, rgb(0,0,0)' + x + '%, rgb(159, 159, 159)' + x + '%)'
range.style.background = color
image.style.height = range.value + '%'
})
问题是addEventListener第一次工作的时候,取range.value,这个值就是图片的高度(比如121px),这个高度大于100,但是input的“max”属性是相等的到 100 (max="100),所以输入值变为 100,图像也是。我的意思是,图像的高度现在是 100%,这不应该。
那么,我如何获取图像的高度(121px)并将其转换为百分比,但在 100% 以内,所以我可以第一次使用这个数字来设置输入的 value 属性?
【问题讨论】:
-
为什么不简单地将
max设置为121(图像的高度)? -
因为用户可以上传不同高度的图片
-
为什么不简单地将
max设置为图像的高度? -
因为它应该是 100 所以背景会随着高度的变化而变化
-
背景与范围值的关系如何?
标签: javascript html math input range