Динамическое изменение значения шага в jQuery Slider

Я хочу добавить Jquery Slider с условным значением шага в моем проекте

Он имеет минимальное значение 1 и максимум 100.

Я хочу сохранить значение шага 1 до уровня от 0 до 50, но когда значение слайда превышает 50, значение шага должно быть равно 2 (ползунок будет увеличиваться как 48,49,50,52,54,56.........)?

Как я могу реализовать?

Это мой код

         this.slider = container.slider({
            animate: true,
            range: "min",
            orientation: "horizontal",
            value: self.minBet,
            max: self.maxBet,
            min: 0,
            step: self.step,  // self.step=1

            slide : function(event,ui) {
                if(self.triggerChange == true) {

                    // Here I want to chenge value of step.
                    // here self.step =1
                    // Now, If ui.value is more than 50 than step will be 2
                    self.handleChangeValue(self.slider,ui.value);
                }
            },

            change: function(event, ui) {
                if(self.triggerChange==true) {
                    self.handleChangeValue(self.slider,ui.value);
                } else {
                    self.triggerChange = true;
                }
            }

        });

Заранее спасибо.

1 ответ

Вот не элегантный FIDDLE, который делает то, что вы хотите.

Он является общим, поэтому вы можете указать любое максимальное значение и любую точку обрезки, и это даст вам четное число над точкой среза.

JS

$('#clickme').on('click', function(){

    var slidervalue = $('#inputme').val();

    var maxvalue = 100;
    var minvalue = 0;
    var cutpoint = 50;
    var finalvalue = 0;


    if (slidervalue > 100)
    {
     slidervalue = 100;
    }
    if (slidervalue < 0)
    {
     slidervalue = 0;
    }

    if (slidervalue <= cutpoint)
    {
     finalvalue = slidervalue;
     }
      else
    {
      if( slidervalue%2 == 0 )
      {
        finalvalue = slidervalue;
       }
        else
        {
         finalvalue = 1 + +slidervalue;
         if( finalvalue > 100 )
           {
            finalvalue = 100;
            }
        }
    }
    $('.putmehere').html(finalvalue);
});
Другие вопросы по тегам