javascript - 如何从左到中和从中到右计算(增量)填充-LMLPHP

这是更多的数学问题,但我认为这不是数学部分。
我用数字居中显示此框。
框的整个宽度为350px
我有最小编号和最大编号,例如0-11,然后除以350/11以获得每个框的宽度。
在此下面,我有一个滑块,该滑块的宽度也是350px,拇指在其中是14px
我想要的是拇指位置始终位于其上方框中数字的中心。
问题:
中间数字很好,它总是在拇指的中心,但是当我向左或向右移动时,数字不再居中。
如何根据宽度值计算框内数字的位置?

最佳答案

要从滑块参数计算总框宽:

box_width = (slider_width - slider_track_width) * num_sub_boxes / (num_sub_boxes - 1)

在您的情况下box_width = 350px, num_sub_boxes = 11。如果要从固定的框宽设置滑块宽度,可以反转公式:

slider_width = (1 - 1 / num_sub_boxes) * box_width + slider_track_width

请注意,滑块的拇指大小没有任何意义(无论如何,我想-如果我写错了,请告诉我)。

09-30 13:25