我相当javascript和jquery。我正在尝试向我的网页添加滑块。这是一个基本的滑块,任何人都可以选择0-100之间的值。我不确定如何在中间标记一些间隔。
这是我到目前为止的代码
<script>
$(function() {
var temp = 0;
$( "#slider" ).slider({
animate: true,
value:temp,
min: 0,
max: 100,
step: 1,
slide: function( event, ui ) {
$( "#amount" ).val(ui.value );
},
stop: function(event, ui) {
temp = ui.value;
//Do something
}
});
$( "#amount" ).val($( "#slider" ).slider( "value" ) );
});
</script>
运作正常。我想尝试做的是添加0.25,50,75和100的区间标记。
我已经对SO进行了一些问题,但不确定如何继续实施。很感激帮助。
我尝试了这个实现:http://jsbin.com/iwime但这不是我想要做的事情,因为我只是希望刻度以这些常规间隔出现,但是用户称之为能够选择其他值。
由于 干杯
答案 0 :(得分:0)
我猜你想要这样的东西:http://jsbin.com/iwime/116
因此,您可以使用要提供的最大单位,而不是使用滑块的max
选项中的刻度数,例如100.然后在refershTicks()
中,更新算法以切换类。
滑块设置:
var slider = $("#slider").slider({
...
max: 100, // the only change
...
});
refreshTicks()
方法:
function refreshTicks() {
var s = slider
, lo = s.slider("values", 0), hi = s.slider("values", 1);
var max = s.slider('option', 'max');
s.find(".tick").each(function(i) {
var i = (i + 1) * (max/ticks.length) - (max/ticks.length)/2; // the updated algorithm
var inRange = (i >= lo && i < hi);
$(this)
[(inRange ? 'add' : 'remove') + 'Class']("ui-widget-header")
[(inRange ? 'remove' : 'add') + 'Class']("ui-widget-content");
});
}
答案 1 :(得分:0)
Similar to this SO Question:Bijan的回答可能有所帮助。
他建议的jQuery UI滑块的实现可以帮助您找到解决方案: http://www.filamentgroup.com/lab/update_jquery_ui_slider_from_a_select_element_now_with_aria_support/