Еще одна заметка про калькуляторы, теперь про использованием давно уже ставших популярными интерактивных элементов управления типа слайдер/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.
у меня теперь другая проблема: не знаю как сделать так, чтобы отправить данные с этого калькулятора на другую страницу сайта... Может сможете помочь? даже на кнопку ничего отобразить не получается. меняются данные тока в одном месте (справа у калькулятора)
Отправляйте данные из полей формы на сервер, например, через атрибут action у тега form, и дальше манипулируйте с ними как хотите, и показывайте на любых страницах, или я не понял вопрос?
Но вопросик небольшой все же возник, а можно ли как-то подцепить сюда еще и чекбокс? Например, чтобы при отметочном чекбоксе сумма умножалась еще на 2...
Спасибо, классно! Долго искал чтото на подобии. Переделал под свои нужды.
Но у меня есть одна потребность, надо включить скидку, которая зависит от количества дней. Например стандартный номер стоит 1000, если берешь 3 дня, то скидка за сутки 200, если 7 дней, то скидка за сутки 300 и т.д.
у меня теперь другая проблема: не знаю как сделать так, чтобы отправить данные с этого калькулятора на другую страницу сайта... Может сможете помочь? даже на кнопку ничего отобразить не получается. меняются данные тока в одном месте (справа у калькулятора)
Отправляйте данные из полей формы на сервер, например, через атрибут action у тега form, и дальше манипулируйте с ними как хотите, и показывайте на любых страницах, или я не понял вопрос?
А кто знает :
не могу проанализировать произведение значений двух слайдеров т.е. делаю комбинацию Switch Statement и if...else statement. На С#
switch (DropDownList1.SelectedValue)
{
case «(Россия)»:
if (...)
{
result = value1 * 400;
}
...
if (...)
{
result = value1 * 230;
}
break;
case «(Германия)»:
if (...)
{
result = value1 * 500;
...
break;
и т.д. работает.
Как это вставить в калькулятор...
Может это в принципе не возможно ? иль где подсмотреть?
Клева!!! Спасибо за Урок ))
Но вопросик небольшой все же возник, а можно ли как-то подцепить сюда еще и чекбокс? Например, чтобы при отметочном чекбоксе сумма умножалась еще на 2...
Ага, можно конечно
Эт конечно здорово )) но, я так и не смог прикрутить (отследить событие чекед еще можно, а вот к расчетам не смог добавить).
Поступил иначе: чекбокс по сути тот же селект с двумя опциями (значения: Да, Нет) ))
И по типу приведенного примера с селектом сделал остальные )) + мне по дизайну так еще и удобнее получилось.
Маладца, чтож
Спасибо, классно! Долго искал чтото на подобии. Переделал под свои нужды.
Но у меня есть одна потребность, надо включить скидку, которая зависит от количества дней. Например стандартный номер стоит 1000, если берешь 3 дня, то скидка за сутки 200, если 7 дней, то скидка за сутки 300 и т.д.
Вот как это сделать не могу сообразить
Здравствуйте! Вопрос собсно глупый, но как поменять местами элементы в калькуляторе, например чтобы select был внизу, а ползунок вверху и т.д.?