在jQuery滑块上添加刻度线?

如何在jQuery滑块上添加刻度线? 假设我有1到10的值,我怎么能在每个值上添加勾号?

我在SO上看过类似的post,但他们都建议使用插件,我想通过与其他元素进行大量交互来对其进行硬编码。

谢谢!

与此SO问题类似 。 Mortimer的答案可能有所帮助。

虽然还没有正式的方法,但是在jQuery UI滑块中加入它会很好。

谢谢Code-Toad。 我修改了你的代码以使用百分比而不是像素,所以现在它不受窗口resize的影响:

使用Javascript:

function setSliderTicks(){ var $slider = $('#slider'); var max = $slider.slider("option", "max"); var spacing = 100 / (max -1); $slider.find('.ui-slider-tick-mark').remove(); for (var i = 0; i < max ; i++) { $('').css('left', (spacing * i) + '%').appendTo($slider); } } 

CSS:

 .ui-slider-tick-mark{ display:inline-block; width:2px; background:black; height:16px; position:absolute; top:-4px; } 

感谢Arie Livshin和CodeToad。 前面的代码假设最小值始终为1.我编辑了代码以使用最小值。

 $("#users-slider").slider( { range: "min", value: 3, min: 3, max: 6, create: function( event, ui ) { setSliderTicks(event.target); }, } ); function setSliderTicks(el) { var $slider = $(el); var max = $slider.slider("option", "max"); var min = $slider.slider("option", "min"); var spacing = 100 / (max - min); $slider.find('.ui-slider-tick-mark').remove(); for (var i = 0; i < max-min ; i++) { $('').css('left', (spacing * i) + '%').appendTo($slider); } } 

假设滑块间隔= 1,这是一个简单的解决方案。

 function setSliderTicks(){ var $slider = $('#slider'); var max = $slider.slider("option", "max"); var spacing = $slider.width() / (max -1); $slider.find('.ui-slider-tick-mark').remove(); for (var i = 0; i < max ; i++) { $('').css('left', (spacing * i) + 'px').appendTo($slider); } } .ui-slider-tick-mark{ display:inline-block; width:2px; background:black; height:16px; position:absolute; top:-4px; } 

您可以使用在正确位置具有标记的背景图像 – 这可能是最简单的方法。