非线性/对数滑块的公式,保持100%在中心

时间:2016-10-26 18:03:46

标签: javascript jquery slider zoom logarithm

我正在尝试为我的应用程序构建非线性水平缩放滑块,我正在努力为'非线性'找到正确的公式。缩放应该是“原始”宽度的百分比(更高或更低),中心为100%(默认)。百分比范围应为10%至10000%。滑块本身的范围为10到4000,默认值为2000,使其保持居中:

<input type="range" id="zoom" min="10" max="4000" value="2000" autocomplete="off">

我当前的JS公式执行以下操作(其中val是滑块的当前值):

Math.floor(Math.pow(10, parseInt(val)/1000));

这没关系,很好地将100%放在滑块中心,但两边的刻度都太陡了。

理想情况下,我想要的是从10%到100%的线性或近线性变化(因此50%大致为四分之一标记),然后是100%的非线性,对数变化至1000%,同时仍保持滑块中心的100%。有没有一个公式,或者我是否真的需要构建我刚刚描述的内容,计算从0到中心的线性值,以及从中心到结尾的对数值?

JSFiddle

感谢您提出任何建议。

0 个答案:

没有答案