Создание шкалы jQRangeSlider ежечасно

0

Я использую jQRangeSlider для своей панели мониторинга. Я пытаюсь использовать параметр масштаба, который предоставляет виджет, используя фрагмент, указанный в документации. Однако мой ползунок Date имеет диапазон 14 дней. Что я хочу, так это то, что я должен иметь линейку отмеченные часами дня, а не месяц, показанный в документации на

link [ http://ghusse.github.io/jQRangeSlider/options.html#scalesOption]

Я пытаюсь сделать это, используя следующий фрагмент:

$("#slider").dateRangeSlider({
bounds: {"min": min2,"max":max2},
      range:{
          min: {hours: 1}},
          scales: [{
           first: function(value){ return value; },
           end: function(value) {return value; },
           next: function(value){
           var next = new Date(value);
           return new Date(next.setHours(value.getHours() + 1));
      },
      label: function(value){
        return months[value.getHours()];
      },
      format: function(tickContainer, tickStart, tickEnd){
        tickContainer.addClass("myCustomClass");
      }
    }]
      });
Теги:
jquery-plugins

1 ответ

2
Лучший ответ

Кажется, что это хорошо, за исключением опции label и некоторых синтаксических ошибок, вы можете попробовать этот код:

var min2 = new Date("2014-01-01"),
    max2 = new Date("2014-01-02");

function addZero(val) {
    if (val < 10) {
        return "0" + val;
    }

    return val;
}

$("#slider").dateRangeSlider({
    bounds: {
        "min": min2,
        "max": max2
    },
    range: {
        min: {
            hours: 1
        }
    },
    scales: [{
        first: function (value) {
            return value;
        },
        end: function (value) {
            return value;
        },
        next: function (value) {
            var next = new Date(value);
            return new Date(next.setHours(value.getHours() + 1));

        },
        label: function (value) {
            return value.getHours();
        },
        format: function (tickContainer, tickStart, tickEnd) {
            tickContainer.addClass("myCustomClass");
        }
    }],
    formatter: function (val) {
        var h = val.getHours(),
            m = val.getMinutes();

        return addZero(h) + ':' + addZero(m);
    },
    defaultValues: {
        min: new Date("2014-01-01T05:00:00Z"),
        max: new Date("2014-01-01T08:00:00Z")
    }
});

Вы можете увидеть его здесь: http://jsfiddle.net/ghusse/LJrYf/1/

  • 0
    Не работает. Пока не масштабируется. В слайдере ничего не изменилось. :(
  • 0
    Я обновил код, чтобы он заработал.
Показать ещё 11 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню