Javascript 如何设置自定义滑块的值
我正在创建一个滑块控件,但设置值时遇到问题Javascript 如何设置自定义滑块的值,javascript,c++,math,numbers,formula,Javascript,C++,Math,Numbers,Formula,我正在创建一个滑块控件,但设置值时遇到问题 _x = 512; _y = 256; _width = 128; _height = 12; _min = 0; _max = 10; 我做了一些事情,比如 // set the value _input = 5; _value = median(_x-(_width/2)+(_input/_max),_x-((_width/2)),_x+((_width/2))) 将输入为5,应该把滑块放在中间,但它没有,我想我在某种程度上计算错误。 _x-(
_x = 512;
_y = 256;
_width = 128;
_height = 12;
_min = 0;
_max = 10;
我做了一些事情,比如
// set the value
_input = 5;
_value = median(_x-(_width/2)+(_input/_max),_x-((_width/2)),_x+((_width/2)))
将输入为5,应该把滑块放在中间,但它没有,我想我在某种程度上计算错误。
_x-(_width/2)将以百分比表示为0,以值表示为0_x+(_-width/2)将为您提供100%,10%的值。最大映射
x0€[\ux-\uwidth/2..\ux+\uwidth/2]
到sl€[0..10]
线性映射,反之亦然,这不是什么大问题
如果具有x0
:偏移量-(\ux-\uwidth/2)
将其转换为0..\uwidth
,则0..10
需要10/\uwidth
的比例:
sl == ( x0 - (_x-_width/2) ) * 10 / _width // float div unless 10 | _width
反向:
x0 == (_x-_width/2) + sl * _width / 10
注意
int
vs.float
division和rounding(+.5
)。关于value=\ux+floor(\uinput/\umax*\uwidth)的情况如何:C做类似于value=\ux+floor(7/\umax*\uwidth)的事情;给我11.95我不知道怎么可能。。floor()应该返回整数,在x中可能也有整数。所以它真的不应该是11.95_value=x+floor(7/max*width)=512+floor(7/10*128)=512+89=601从那时起我一直在研究它,最终解决了它。似乎我必须将范围映射到最小/最大值。在任何情况下,请遵循此处的解决方案。