noUiSlider长数字四舍五入误差

7

我使用数据初始化noUiSlider

var settings = {
  connect: "lower",
  range: {
    max: 87654567890,
    min: 0
  },
  start: 30679098762,
  step: 1
}

初始化后滑块值为30679098761.50,为什么?
示例在此处 - https://jsfiddle.net/serGlazkov/yrppsmvo/5/

我认为这是因为,将幻灯片移动1像素会增加值(87654567890 / 幻灯片长度以像素为单位),当您选择该值时,它会取最接近的值。 - Alexandr Kudryashov
@AlexandrKudryashov 我认为这不正常,有一些方法可以修复吗? - sglazkov
2个回答

0

这么大的数字无法在滑块宽度上准确表示(比如说300像素无法合理地被87654567890整除)。

解决方案是使用一个小数值范围,并在数组中查找大数值:

var range = ['x','x2','x3',...];

bigValueSlider.noUiSlider.on('update', function ( values, handle ) {
    bigValueSpan.innerHTML = range[values[handle]];
});

请看文档中的这个示例,了解如何处理它。

在初始化时,我设置了一个整数值,为什么滑块会改变它?我知道滑块会改变值,因为它将值转换为百分比并返回,这不错,但不是在初始化时。而且,我无法设置值,插件会更改它。演示在这里 https://jsfiddle.net/serGlazkov/yrppsmvo/8/ - sglazkov

0

这是一个 noUiSlider 的 bug,在 8.4.0 版本中已经修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接