JavaScript-калькулятор с использованием jQuery-слайдера (ползунка)

jquery sliderЕще одна заметка про калькуляторы, теперь про использованием давно уже ставших популярными интерактивных элементов управления типа слайдер/slider/ползунок.

Суть удобства и популярности заключается в уменьшении количества забиваемых цифровыми значениями полей, например, количественных характеристик или диапазонов цен.

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

Наш калькулятор будет условно считать стоимость съема комнат отдыха с коэффициентом их типа.
Соответственно два слайдера отвечают за выбор количества комнат, выпадающий список за выбор мультипликатора, т.е. их типа.

У слайдеров есть максимальное и минимальное значение, а также величина шага.
В данном примере min, max — 1-5, 6-10, и шаг в единицу.

Вызов своей функции при движении слайдера

Некоторой особенностью этого примера является вызов нашей кастомной считающей функции calc(); в событии slide. Таким образом при каждом движении слайдера все результаты расчетов будут пересчитываться и обновляться в сводной таблице.

Как поменять внешний вид слайдеров

FireBug-ом легко заметить обилие css-стилей навешанных на элементы слайдера, это означает что править их на свои мы можем простым переопределением с ключевым словом !important;
Так в этом примере уменьшен общий размер элементов слайдера за счет переопределенного стиля:
.ui-widget{font-size: 0.6em !important;}

Примечание: чтобы такой трюк сработал, ваши css-стили должны подгружаться позже родных от jQuery.

Совместимость с браузерами

Тестировалось во всех популярных. Единственный вызвавший ошибку — Internet Explorer:
<strong>Сообщение: Объект не поддерживает это свойство или метод
Строка: 46
Символ: 2
Код: 0</strong>
Оказалось, что причина в необъявленной переменной summ.

Код скрипта калькулятора

Код калькулятора

Пример работы

Пример работы калькулятора на отдельной странице.

Официальная документация

  1. Описание API jQuery Slider
  2. Различные примеры и demo использования jQuery Slider

Комментариев: 29

  • 05.07.2012 Natali:

    у меня теперь другая проблема: не знаю как сделать так, чтобы отправить данные с этого калькулятора на другую страницу сайта... Может сможете помочь? даже на кнопку ничего отобразить не получается. меняются данные тока в одном месте (справа у калькулятора)

    • 08.07.2012 Кирилл:

      Отправляйте данные из полей формы на сервер, например, через атрибут action у тега form, и дальше манипулируйте с ними как хотите, и показывайте на любых страницах, или я не понял вопрос?

  • 17.08.2012 Alex:

    А кто знает :

    не могу проанализировать произведение значений двух слайдеров т.е. делаю комбинацию Switch Statement и if...else statement. На С#

    switch (DropDownList1.SelectedValue)

    {

    case «(Россия)»:

    if (...)

    {

    result = value1 * 400;

    }

    ...

    if (...)

    {

    result = value1 * 230;

    }

    break;

    case «(Германия)»:

    if (...)

    {

    result = value1 * 500;

    ...

    break;

    и т.д. работает.

    Как это вставить в калькулятор...

    Может это в принципе не возможно ? иль где подсмотреть?

  • 02.02.2013 Антон:

    Клева!!! Спасибо за Урок ))

    Но вопросик небольшой все же возник, а можно ли как-то подцепить сюда еще и чекбокс? Например, чтобы при отметочном чекбоксе сумма умножалась еще на 2...

    • 05.02.2013 Кирилл:

      Ага, можно конечно :)

      • 06.02.2013 Антон:

        Эт конечно здорово )) но, я так и не смог прикрутить (отследить событие чекед еще можно, а вот к расчетам не смог добавить).

        Поступил иначе: чекбокс по сути тот же селект с двумя опциями (значения: Да, Нет) ))

        И по типу приведенного примера с селектом сделал остальные )) + мне по дизайну так еще и удобнее получилось.

  • 04.04.2013 Ден:

    Спасибо, классно! Долго искал чтото на подобии. Переделал под свои нужды.

    Но у меня есть одна потребность, надо включить скидку, которая зависит от количества дней. Например стандартный номер стоит 1000, если берешь 3 дня, то скидка за сутки 200, если 7 дней, то скидка за сутки 300 и т.д.

    Вот как это сделать не могу сообразить

  • 14.11.2014 Владимир:

    Здравствуйте! Вопрос собсно глупый, но как поменять местами элементы в калькуляторе, например чтобы select был внизу, а ползунок вверху и т.д.?


Добавление комментария:

 css.php