#javascript #slider
Вопрос:
Мне нужно создать «слайдер» для сайта клиента. Ползунок должен позволять людям выбирать, сколько предметов они хотят из x предметов, и показывать, какая цена будет основана на этом. Странная(иш) часть заключается в том, что соотношение роста цен будет снижаться по мере увеличения количества товаров:
- 1 предмет: 100 долларов
- 2 предмета: 90 = 190 долларов
- 3 предмета: 80 = 270 долларов
- 4 предмета: 70 = 340 долларов
- 5 предметов: 60 = 400 долларов
- 6 предметов: 50 = 450 долларов
- 7 предметов: 50 = 500 долларов
И все повышения с тех пор составляют 50. Это, вероятно, кажется чрезмерно упрощенным вопросом, но кто-нибудь знает, как я мог бы это сделать? У меня почти нет опыта работы с JavaScript 🙁
Ответ №1:
Проверьте Yahoo! пользовательский интерфейс. у них есть виджет-слайдер: http://developer.yahoo.com/yui/slider/
Следующий пример должен помочь вам начать: http://developer.yahoo.com/yui/examples/slider/slider-ticks.html.
Все фреймворки JavaScript (jQuery, MooTools), похоже, предлагают слайдер. YUI даст вам большой контроль и загрузчик, так что вам не придется размещать скрипт на своем сервере. Имейте в виду, что YUI не делает реализацию такой же безболезненной, как в случае с двумя другими, о которых я упоминал.
Вот пример MooTools:
// First example of http://demos.mootools.net/Slider
<div class="slider" id="myslider">
<div class="knob" style="position: relative;"/>
</div>
И JavaScript:
var el = $('myslider'); // The slider graphic
new Slider(el, el.getElement('.knob'), {
steps: 7, // There are 7 choices
range: [1, 7], // Minimum value is 1, maximum is 7
onChange: function(value){
// Calculation of the value goes here
}
});
Ответ №2:
Хотя, по-видимому, существует бесконечное множество способов создания слайдера с помощью JS, я думаю, что самый простой способ рассчитать цены-это просто жестко закодировать (или перечислить) их где-нибудь и просто else-if
просмотреть их.
Вы могли бы создать алгоритм, учитывающий 100-(i*10)
пять первых пунктов, 50
для остальных, но в будущем его, вероятно, будет сложнее изменить, чем способ, указанный в списке.