webew
Войти » Регистрация
 
JavaScript

FC-TrackBar 0.4.1

7 июня 2008, 19:24

Краткий экскурс в историю

Не так давно в статьях раздела JavaScript были представлены широкой публике трекбары:

Проект неожиданно получил продолжение. К разработке присоединились камрады Abarmot и 1602, а активное обсуждение привело к улучшению текущего и реализации нового функционала. Поэтому, появилось желание сделать проекту свой собственный "дом", где он будет жить и развиваться, что было успешно реализовано на sourceforge.net. Теперь вместо того, чтобы писать статью на каждое изменение в трекбарах автор может спокойно обновлять архивы и описания, а вы самостоятельно скачивать последние версии.

На данный момент описаниями успели замарать следующие страницы:

По ссылкам вы можете познакомиться с проектом и его развитием.

Отдельно хочется отметить камрада Mongi, который на основе версии 0.4.0 взял и создал собственную ветку проекта. Был соблазн использовать его труд в качестве основы, однако, в демке обнаружились серьезные проблемы в браузере Опера и сильные "тормоза" на некоторых примерах. Поэтому, дальнейшей доработке была подвергнута собственная, уже стабильная версия.

Прошу любить и жаловать

Проект FC-TrackBar, в текущем релизе версия 0.4.1.

Новая версия более стабильна. Были исправлены некоторые баги и добавлен функционал засечек, с которым вы можете ознакомиться в демке. Второму трекбару "year of birth" были добавлены засечки с помощью небольшого количества новых настроек:

  • showBigTicks по-умолчанию false, флаг, разрешающий показ больших засечек, к которым всегда подписывается соот-ее значение.
  • bigTicks —по-умолчанию 1, число больших засечек на трекбаре.
  • smallTicks — по-умолчанию 1, число мелких засечек между большими. Если больших нет - просто их число на трекбаре.
  • showSmallTicks — по-умолчанию false, флаг, разрешающий показ маленьких засечек.

Кроссбраузерность

Проверена работоспособность в:

  • WIN:
    - IE6, IE 7;
    - FF1.5, FF2.0;
    - Mozilla 1.7.2;
    - Opera 8.02, Opera 8.5, Opera 9.01, Opera 9.2;
  • NIX:
    - Opera 9.27;
    - Firefox 2.0.0.13;

В операх ниже восьмой версии и Netscape 7.1 стабильной работы нет. Однако, на данный момент этими браузерами должны пользоваться только тестеры и люди, оставшиеся доживать XX век :-)

Future

Есть множество задач по расширению текущего функционала. Актуальна разработка плагинов для известных фреймворков, например jQuery. Если среди читателей найдутся желающие поучаствовать — пишите в комменты к моему профилю. Для удобства групповой работы есть subversion на сорсфорже: https://fc-trackbar.svn.sourceforge.net/svnroot/fc-trackbar Особенно буду рад видеть камрадов Abarmot, 1602 и Mongi! Всем спасибо за критику и предложения! Вы делаете наш проект лучше :-)

© Все права на данную статью принадлежат порталу webew.ru. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в печатных изданиях допускается только с разрешения редакции.
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

porcelanosa

Вот такой вопрос:
не по сути плагина
Надо обработать установить значения бегунков после инициализации плагина

trackbar.getObject('two').init(
        {
            onMove : function() {
            },
            //dual : false, // two intervals
            width : 200, // px
            leftLimit : 1, // unit of value
            leftValue : 1, // unit of value
            rightLimit : 200, // unit of value
            rightValue : 200, // unit of value
            hehe : ":-)"
        },
        "distance-track"
        );

trackbar.getObject('two').updateLeftValue(55);
 

Но не срабатывает - потому что как я поняла инициализация идет уже после обработки всего JS

и даже после функции jquery ready обрабатывается раньше
16.07.2008, 06:06
Ответить

bur

Если установка значений нужна только после инициализации и изначально задать leftValue нельзя, пользуйтесь таким способом:

trackbar.getObject('two').domReady(function() {
    trackbar.getObject('two').updateLeftValue(55);
});
16.07.2008, 11:26
Ответить
NO USERPIC

porcelanosa

А по поводу дробного шага - что можно сделать?
т.е. дипазон 1-10 шаг 0.1
Может подскажете в каком направлении двигаться (почему не было реализовано в текущей версии) - я попробую сама доработать.
24.07.2008, 21:36
Ответить
NO USERPIC

porcelanosa

попробовала использовать roundUp 0.1 и заменить parseInt на toFixed(1) - вижу - что проблема в округлении - т.е. допустим 1.5 округляет нормально - а в 1.7 вылезает какая то 2-ка после кучи нулей 1.700000002
Может попробовать в строку это перtводить и обрезать после toFixed(1) все знаки дальше . +1 а дальше допустим сделать parseFloat ?
24.07.2008, 22:15
Ответить

bur

Дробный шаг можете организовать с пом. parseFloat() для Вашеко конкретного случая.
В движок это будет интегрировано в след. версии.
25.07.2008, 12:21
Ответить
NO USERPIC

portisheader

А подскажите, можно ли как-то отловить момент, когда движение ползунка закончилось (отпустили кнопку мыши)?
13.09.2008, 00:25
Ответить

bur

В API это не предусмотрено, но в движке есть один обработчик события mouseup на весь документ:

this.addHandler (
    document,
    "mouseup",
    function() {
        _this.moveState = false;
        _this.moveIntervalState = false;
    }
);


Если очень нужно, можете повесить условие if (_this.moveState) {/*нужный код*/}

Интересно, для решения какой задачи это вам понадобилось? Может зашить такую возможность в API?
15.09.2008, 12:55
Ответить
NO USERPIC

portisheader

Спасибо за совет, он помог.

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

Насчет API - было бы полезное многим, наверное. Что-то вроде onMoveComplete .
15.09.2008, 13:57
Ответить

bur

Действительно может пригодится, придется делать отдельный метод, что-то вроде onMoveEnd.
15.09.2008, 14:00
Ответить
NO USERPIC

prostovova

Возможно ошибаюсь, у Вас в архиве CSS не поддерживает засечки, взял из демки.
20.10.2008, 03:07
Ответить

bur

Проверю.

Совсем скоро (через неделю) будет новая версию дистрибутива с полноценным бакфиксингом и новыми фичами...
28.10.2008, 23:10
Ответить
NO USERPIC

prostovova

Здорово, думаю отвечу за всех сказав, что ждем с нетерпением :)
29.10.2008, 11:50
Ответить
NO USERPIC

GAmoVeR

Пропустил эту тему, отписал комментарий в старой - но повторюсь сюда :)
У меня схожая проблема с portisheader - только в качестве ресурсоемкой операции выполняется ajax запрос - в данном случае слайдер выступает как настройщик фильтра по значениям. Обработчик onMoveEnd() ну очень хотелось бы видеть

Присоединяюсь ко всем тем кто ждет с нетерпением ;)
30.01.2009, 15:23
Ответить
NO USERPIC

avtorpc

Добрый день, не работает трак бар под ИЕ6, никак не могу найти причину, вот здесь можно просмотреть, пишет ошибку - не завершенная строковая команда, Буду очень признателен за помощь!
Ден
05.08.2010, 23:35
Ответить
NO USERPIC

rgbeast

Ссылку забыли привести
05.08.2010, 23:39
Ответить
NO USERPIC

avtorpc

Извиняюсь, не забыл ее привести, а не правильно дал, ее вырезало, попробую вот так дать http://dev.dverimastera.ru/catalog/page_1280946111_6.php
06.08.2010, 16:41
Ответить
NO USERPIC

while

Здравствуйте. Вопрос: не работает метод updateLeftValue/updateRightValue при обновлении значения позиции trackbar`а извне. Версия trackbar`а 0.4.1. Собственно ошибка вот в чем: в этих функциях значение свойства rightLimit - всегда равно нулю, хотя в init и др. функциях - значение отлично от нуля. Значения свойству rightLimit нигде, кроме метода init - не присваиваются...
06.08.2010, 17:56
Ответить
NO USERPIC

D1ma Z.

Здравствуйте! Я извиняюсь, такой вопрос, я видел выше, у Вас уже спрашивали, как отловить окончание движение ползунка (момент, когда кнопка мыши была отпущена), Вы не могли бы разъяснить этот момент чуть подробнее? Куда нужно написать эту функцию, которую Вы привели? В onMove или куда? Очень нужно поймать момент, когда кнопка мыши была отпущена, не трогая существующий функционал. Заранее спасибо, жду Вашего ответа.
13.08.2012, 18:23
Ответить
NO USERPIC

rgbeast

В trackbar.js нужно добавить вместо слов "нужный код"
this.addHandler (
    document,
    "mouseup",
    function() {
          if (_this.moveState) {/*нужный код*/}
      _this.moveState = false;
      _this.moveIntervalStatefalse;
    }
    );
14.08.2012, 03:03
Ответить
NO USERPIC

D1ma Z.

Спасибо!
14.08.2012, 10:15
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2024 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: