简体   繁体   English

具有3个或更多手柄的Bootstrap滑杆?

[英]Bootstrap slider with 3 or more handles?

Quick question. 快速提问。 Is it possible to use bootstrap slider to select more than 3 ranges (basically have 3 or more handles on it, instead of the default 2)? 是否可以使用引导程序滑块来选择3个以上的范围(基本上具有3个或更多的手柄,而不是默认的2个)?

We have a change in requirement, where we were earlier using 5 different sliders, but now we want to try and see if we can somehow merge them into one slider itself. 我们的需求有所变化,我们之前使用5种不同的滑块,但是现在我们想尝试看看是否可以将它们合并到一个滑块本身中。

I wish I could post a pic, but I don't have enough repo :P 我希望我可以发布一张图片,但是我没有足够的回购:P

|----O----O--------O-----O-------| | ---- ----ØØØ-------- -----Ø------- |

Any help would be awesome. 任何帮助都是极好的。

Unfortunatelly bootstrap-slider.js can "handle" only two handles. 不幸的是bootstrap-slider.js只能“处理”两个句柄。 But noUiSlider can have more of them and is highly customizable. 但是noUiSlider可以有更多的功能并且可以高度自定义。

It can't tell you the ranges rightaway, but you can get them easily from counting with handles, min and max like this: 它无法立即告诉您范围,但是您可以通过使用手柄,最小值和最大值进行计数来轻松获得它们,如下所示:

//get array of connect elements (ranges)
var connect = multirange.querySelectorAll('.noUi-connect');

multirange.noUiSlider.on('update', function () {
 var valuesarr = multirange.noUiSlider.get(),
 max = multirange.noUiSlider.options.range.max[0],
 oldsum = multirange.noUiSlider.options.range.min[0];// = slider min, will be usually 0

 for ( var i = 0; i < connect.length; i++ ) {
     if(valuesarr[i]) $(connect[i]).text(valuesarr[i] - oldsum);
     else $(connect[i]).text(max - oldsum);
     oldsum=valuesarr[i];
 }
});

see fiddle! 看小提琴!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM