jQuery滑块问题:无法达到最小值和最大值

6
我初始化了一个jQuery滑块,然后根据json请求的内容动态设置最小和最大值。步数为100,最小值和最大值都被重新计算为100的倍数,大多数情况下在300到4800之间。
滑块的值和设置都很好,但当我移动手柄时,它无法完全到达端点,会停留在离最小/最大值几个步骤的位置。这是为什么?
我尝试了各种方法,但没有一种有效。最终我在顶部的值上添加了200,在底部减去了200来进行补偿,但这只是一个hack而不是解决方案。

是这样的,手柄已经达到了最大位置,但报告的值却不是最大值(与手柄根本无法到达末端相对)。而且如果你快速滑动,情况会更糟。只是想确定这是否是我所遇到的同样问题。还没有解决方案...但会让你知道。 - Ben
3个回答

7
在你的“slide”回调中,尝试使用ui.value获取值。这解决了我的问题。请参见jQuery UI滑块-无法滑动到0,但不要按答案去做,要按答案下面的评论去做。

0

我知道这个问题已经有5年了,但今天我遇到了一个类似的问题。我有一个短滑块,有很多步骤,从0到1,每次步长为0.01。滑块手柄会碰到滑块的两端,而不是最外层的步骤,所以我只能向下到0.02,向上到0.98。

如果有人遇到这个问题,一个快速的解决方法是简单地使您的最小和最大值比它们应该的范围稍微大一些,并在用户滑过它们时调整您的值。

('.slider-container').slider({
                min: -0.02, max: 1.02, step: 0.01, slide: function () {

                    // make values below 0 and over 1 snap back
                    if ($(this).slider('value') < 0) {
                        $(this).slider('value', 0);
                    }

                    if ($(this).slider('value') > 1) {
                        $(this).slider('value', 1);
                    }
});

0

我在这些设置上遇到了类似的问题。

min: 35000.74
max: 150000
step: 1 //(default, did not actually change it)

滑块只能到达149999.74。当然,在我的情况下,问题在于给定步长1和不被这些步长整除的范围,其中一个端值永远无法通过滑块到达。

将最小值更改为35000(Math.floor()),一切都像魔术般地运行。


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