Create multiple range slide handles in one slider

前端 未结 6 794
渐次进展
渐次进展 2020-12-17 15:30

I am trying to add multiple handles to a jQuery UI slider widget, as in 2 or 3 or more range sliders in one slider.

I have tried searching on google and found an art

6条回答
  •  既然无缘
    2020-12-17 16:12

    If you don't insist on jQuery UI, also noUiSlider has this capability and is highly customizable. 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!

提交回复
热议问题