Trackbar (бегунок) на странице


Все мы привыкли пользоваться трекбарами в наших операционных системах. А вот страницы сайтов этим радуют не часто, т.к. встроенных возможностей для создания такого элемента нет, а программить — не просто да и не хочется. Поэтому, в тех местах, где трекбары действительно нужны, мы наблюдаем наборы селектов.

Предлагаю забыть об этой проблеме и вовсю начать пользваться трекбарами, например такими как на этом скрине:

Посмотреть основной демонстрационный файл , все новые возможности вынесены в специальную демку.

Установка

Скачайте Архив TrackBar v4.0 – 31Kb куда вам там нужно его скачать, например, в папку со страницей для прикрутки бегунков.

В распакованном архиве вы обнаружите:

Подключайте js- и css- файлы, кладите папку с рисунками, чтобы они были видны странице и приступайте к созданию простейшего трекбара.

Использование

В том месте HTML-кода страницы, где будет стоять трекбар, необходимо прописать JavaScript-сценарий:

trackbar.getObject('one').init({
onMove : function() {},width : 250, // px
leftLimit : 0, // unit of value
leftValue : 20, // unit of value
rightLimit : 100, // unit of value
rightValue : 80, // unit of value
hehe : ":-)"
});

Как несложно догадаться из кода, каждое свойство передаваемого в JSON-формате объекта выставляет соот-ий параметр:

Можно модернизировать этот трекбар, задав ему дополнительные свойства:

Что может этот трекбар?

Чего он не может

Обновленная инициализация

В предыдущих версиях скрипт инициализации необходимо было размещать в нужном участке HTML-кода и принимал он всего один аргумент:

trackbar.getObject('one').init({
/* Параметры инициализации и функция обратного вызова */
});

Такой способ зачастую неудобен, т.к. требует изменения шаблонов проекта. Чтобы исправить этот недостаток, в четвертой версии расширены возможности метода .init() и теперь он может принимать в качестве второго аргумента идентификатор HTML-элемента:

trackbar.getObject('one').init(
{
/* Параметры инициализации и функция обратного вызова */
},
"elementId"
);

Соот-но теперь код инициализации можно вызывать где угодно, например, в js-файле, не изменяя HTML-код.

Синхронизация трекбаров

Это сразу бросается в глаза на специальной демке. Теперь трекбары можно связать между собой прямо в функции обратного вызова onMove, с помощью двух новых методов:

Рассмотрим, для примера код инициализации первого бегунка в спец-демке:

trackbar.getObject('one').init(
{
onMove : function() {
trackbar.getObject('two').updateLeftValue(this.leftValue);
},
dual : false, // two intervals
width : 300, // px
//  leftLimit : 0, // unit of value
leftValue : 0, // unit of value
rightLimit : 255, // unit of value
rightValue : 0, // unit of value
hehe : ":-)"
},
"oneId"
);

В этом коде создается трекбар с идентификатором ‘one’, а в функции onMove содержится фрагмент кода, означающий: «для трекбара с id=’two’, установить значение левого бегунка такое, как и у меня, текущего трекбара». Для симметрии аналогичной связывание реализовано во втором трекбаре:

trackbar.getObject('two').init(
{
onMove : function() {
trackbar.getObject('one').updateLeftValue(this.leftValue);
},
dual : false, // two intervals
width : 300, // px
//  leftLimit : 0, // unit of value
leftValue : 0, // unit of value
rightLimit : 255, // unit of value
rightValue : 0, // unit of value
hehe : ":-)"
},
"twoId"
);

Рассмотренный пример описывает простой вариант связи, который может быть любым, на ваше усмотрение. Например таким, как показано в двух других связных трекбарах на новой демке. Можно применять произвольные формулы движения в callback-функции, делая зависимость нелинейной или более чем между 2-мя трекбарами. Всё будет зависеть от потребностей вашего проекта и фантазии проектировщика интерфейсов ;-)

О планах

Развитие проекта JS-TrackBar, вероятнее всего на этом не остановится. В новой версии планируется:

О jQuery

Архив по-прежнему включает версию скрипта, совместимую с библиотекой jQuery. Однако, в ней обратной совместимости добиться не получилось, так что будьте внимательный при её использовании. Т.к. автор скрипта не использовал в своей практике jQuery и изменения вносил в эту версию скрипта «как придется», помощь в доведении её до ума приветствуется!

Источник: http://webew.ru/articles/387.webew

  • Share/Bookmark

Нет похожих статей

1 балл2 балла3 балла4 балла5 баллов (Без рейтинга)
Loading ... Loading ...
JavaScript, Программирование


Если Вам понравилась эта статья, пожалуйста оставьте свой комментарий или подпишитесь на RSS-канал и получайте в будущем статьи на RSS Reader.

Написать комментарий

(обязательно)

(обязательно, не публикуется)