gpt4 book ai didi

javascript - Jquery ui slider 移动到下一个值

转载 作者:行者123 更新时间:2023-12-02 18:44:18 24 4
gpt4 key购买 nike

这是我想要实现的目标的示例图片

enter image description here

假设我从 150 值开始单击, handle 应该只移动到 50,而不会跳到 150。我再次单击,它会从 50 移动到 100。

相反,假设 handle 位于值 150,然后我单击值 5,它不应该直接跳转到 5,而应该从 150 移动到 100。

我怎样才能做到这一点?

这是我的代码:

var valMap = [5, 10, 20, 50, 100, 150];
value = 0;
var slider = $("#slider").slider({
disabled: false,
animate: true,
min: 0,
max: valMap.length - 1,
slide: function (event, ui) {
slider.slider("option", "animate", "slow");

},
change: function () {

var Slideval = $(this).slider('value');
console.log(Slideval, value)
if(value < Slideval) {
console.log("incremented")
} else if(value > Slideval) {
console.log("decremented")
}
value = Slideval;
}
});

这是一个示例 jsfiddle:http://jsfiddle.net/endl3ss/jNwww/21/

最佳答案

我不太了解 slider ,但这里有一个基于您的规范的可行解决方案:

http://jsfiddle.net/5xMMz/11/

这里是完整的代码供引用

    var valMap = [5, 10, 20, 50, 100, 150,500,1000,5000];
value= 0;
var lastSlideValue = 0;
var internalSlideCalling = false;

var slider = $("#slider").slider({
disabled : false,
animate : true,
min : 0,
max : valMap.length - 1,
slide : function(event, ui) {
slider.slider("option", "animate", "slow");
},
change: function(){

var Slideval = $(this).slider('value');

if (!internalSlideCalling)
{
if (Slideval>lastSlideValue && lastSlideValue < $(this).slider('option','max'))
{
Slideval = lastSlideValue+1;
}
else if (lastSlideValue > $(this).slider('option','min'))
{
Slideval = lastSlideValue-1;
}
lastSlideValue = Slideval;
}

console.log(Slideval, value)

if(value < Slideval) {
console.log("incremented")
} else if(value > Slideval){
console.log("decremented")
}
value = Slideval;

if (!internalSlideCalling){
internalSlideCalling = true;
$(this).slider('value',Slideval);
}
else
internalSlideCalling = false;
}
});

$("#slider").slider('values',valMap);

关于javascript - Jquery ui slider 移动到下一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com