Javascript jQuery UI:使用一个捕捉平滑滑块(默认值)?
我想做一个滑块,捕捉到中心,同时在其他地方保持平滑的动作。类似于现实生活中扬声器平衡滑块的jQuery版本。可能吗 或者我应该用一个可拖动的对象创建自己的滑块,将其压缩到一个轴上,并包含一个帧,然后捕捉到位于帧中心的另一个对象(或网格)Javascript jQuery UI:使用一个捕捉平滑滑块(默认值)?,javascript,jquery,user-interface,slider,Javascript,Jquery,User Interface,Slider,我想做一个滑块,捕捉到中心,同时在其他地方保持平滑的动作。类似于现实生活中扬声器平衡滑块的jQuery版本。可能吗 或者我应该用一个可拖动的对象创建自己的滑块,将其压缩到一个轴上,并包含一个帧,然后捕捉到位于帧中心的另一个对象(或网格) 编辑:我只需要一个滑块,允许值从-10到-1,0,和1到10(介于-1和1之间捕捉到0),步长:0.1Hmmm…这就是我在脑海中想象的…一个像旋转木马一样在计时器上滑动的背景(可能这些是大图像),顶部有一行缩略图,可以平滑滑动。这就是你想要建造的 编辑:以下是您
编辑:我只需要一个滑块,允许值从-10到-1,0,和1到10(介于-1和1之间捕捉到0),步长:0.1Hmmm…这就是我在脑海中想象的…一个像旋转木马一样在计时器上滑动的背景(可能这些是大图像),顶部有一行缩略图,可以平滑滑动。这就是你想要建造的 编辑:以下是您需要执行的操作: 我很少发现需要使用jQuery插件。以下是您需要的:
您应该能够使用jQuery滑块,但使用以下命令限制其运动:
jSlider.slider({
//其他选择。。。
幻灯片:功能(事件、用户界面){
如果(ui.value>-1&&ui.value<1&&ui.value!=0){
//将其强制为-1和1之间的0。
jSlider.slider('value',0);
返回false;
}
返回true;
}
});
使用以下命令,以便jquery滑块自动捕捉到步骤中最近的位置。诀窍是实现自己的步长间隔滑块。问题是,如果最大值和最小值之间的距离很小(例如5-10),则幻灯片将按步长运行,因为默认步长=1,因此您需要基于此计算步长。如果最大-最小值之间的距离很大(例如1-1000或更大),则可以保留计算步骤计算,并将其初始化为1
max_limit = 30;
min_limit = 5;
stick_to_steps_of = 5;
var computed_step = max_term/100; //you can vary the denominator to make it smoother
$("#my_slider" ).slider({
animate : true,
value: max_limit,
min: min_limit,
max: max_limit,
step: computed_step,
stop: function( event, ui ) {
d = parseInt(parseInt(ui.value)/stick_to_steps_of);
rem = parseInt(ui.value)%stick_to_steps_of;
var fval = 0;
if (rem <= parseInt(stick_to_steps_of/2)) {
fval = d*stick_to_steps_of;
}else{
fval = (d+1)*stick_to_steps_of;
}
$("#my_slider").slider('option', 'value', fval);
$('#myslider_current_value').html(fval); //some placeholder to show the current value
}
});
max_limit=30;
最小极限=5;
坚持步骤,共5步;
计算的var\u步长=最大\u项/100//您可以改变分母使其更平滑
$(“#我的#滑块”).滑块({
动画:对,
值:最大极限,
min:min_限制,
max:max_极限,
步骤:计算步骤,
停止:功能(事件、用户界面){
d=parseInt(parseInt(ui.value)/stick\u to\u steps\u of);
rem=parseInt(ui.value)%stick\u to\u steps\u of;
var-fval=0;
如果(rem听起来很有趣,但它比这简单得多。)我只需要一个滑块,允许值从-10到-1,0,和1到10(介于-1和1之间捕捉到0)。我会把它添加到问题中。:)啊,明白了。“扬声器平衡滑块”在第一次阅读时就在我头上。什么是“其他地方的平滑动作”?问题是什么(从我收集的信息来看)使用jQuery UI滑块进行“捕捉”意味着“步进”--如果你想让它捕捉到一个地方,你可以让它以相等的增量到处捕捉。我想让值分辨率在除零区域以外的任何地方都很高。效果非常好。非常感谢!
max_limit = 30;
min_limit = 5;
stick_to_steps_of = 5;
var computed_step = max_term/100; //you can vary the denominator to make it smoother
$("#my_slider" ).slider({
animate : true,
value: max_limit,
min: min_limit,
max: max_limit,
step: computed_step,
stop: function( event, ui ) {
d = parseInt(parseInt(ui.value)/stick_to_steps_of);
rem = parseInt(ui.value)%stick_to_steps_of;
var fval = 0;
if (rem <= parseInt(stick_to_steps_of/2)) {
fval = d*stick_to_steps_of;
}else{
fval = (d+1)*stick_to_steps_of;
}
$("#my_slider").slider('option', 'value', fval);
$('#myslider_current_value').html(fval); //some placeholder to show the current value
}
});