Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom Range/Variable Set with jQuery UI Slider

I wanted to see if I could make a custom data set to use with jQuery UI Slider. I'm working on a site that has dress sizes that come in the range of: [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 16W, 18W, 20W ]

The issue I'm having arises right after 18, when it jumps to "wide" sizes that are a bit unique.

Before I added in the 16W, 18W, and on sizes, I created a working slider using the following code:

$("#slider-size .slider").slider({
  min: 0,
  max: 18,
  step: 2,
  slide: function(event, ui) {
    $(".rsize").text(ui.value);
  }
});

The last argument in that function changes a text value when the slider is changed.

Does anyone know how to go about adding in the 16W, 18W, etc to the end of this list?

Thanks!

like image 985
Mike B. Avatar asked Jul 26 '10 16:07

Mike B.


2 Answers

for custom sizes, you may use another array for your labels:

var sizes = ["0","2","4","6","8","10","12","14","16","18","16W","18W","20W"];
$("#slider-size .slider").slider({
  min: 0,
  max: sizes.length - 1,
  step: 1,
  slide: function(event, ui) {
    $(".rsize").text(sizes[ui.value]);
  }
});

Now, to add or remove sizes, just modify the sizes array.

like image 56
Yanick Rochon Avatar answered Oct 17 '22 23:10

Yanick Rochon


demo

$("#slider-size .slider").slider({
  min: 0,
  max: 24, // max is 24
  step: 2,
  slide: function(event, ui) {
    var s = ui.value;
    switch(ui.value) {
       case 20:
         s = '16W';
         break;
       case 22:
         s = '18W';
         break;
       case 24:
         s = '12W';
         break;
    }
    $(".rsize").text(s);
  }
});

----- or ------

demo

$("#slider-size .slider").slider({
  min: 0,
  max: 24, // max is 24
  step: 2,
  slide: function(event, ui) {
      $(".rsize").text((ui.value >18)?(ui.value-4)+'W':ui.value);
  }
});​
like image 40
Reigel Avatar answered Oct 18 '22 01:10

Reigel