Buscador Coex WP
Buscador Coex WP pruebas
by Alejandro Hernández
HTML
<div class="pasajeros-spinner voidselect">
<a href="javascript:;" class="spin-pax minus voidselect button">-</a>
<input id="partidasAdultos" name="c" type="text" class="azul bold600 cantidad" value="5" />
<a href="javascript:;" class="spin-pax plus voidselect button">+</a>
</div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
#banner-message.alt button {
background: #fff;
color: #000;
}
JavaScript
cambiarPasajeros = function(el, delta) {
var txt = el.closest(".pasajeros-spinner").querySelector(".cantidad");
var paxType = txt.getAttribute("name");
var valorActual = parseInt(txt.value);
if (isNaN(valorActual)) valorActual = 0;
var valorNuevo = valorActual + delta;
var limites = getPaxLimit(paxType);
if (valorNuevo < limites.min) valorNuevo = limites.min;
if (valorNuevo > limites.max) valorNuevo = limites.max;
if (valorActual !== valorNuevo) {
var txts = document.querySelectorAll('input[name="' + paxType + '"]');
Array.prototype.forEach.call(txts, function(txt, i) {
txt.value = valorNuevo;
});
}
}
var inputs = document.querySelectorAll('a.button.minus');
var bMinus = document.querySelectorAll('a.button.minus');
onClick(bMinus, function(el) {
cambiarPasajeros(el, -1);
});
var bPlus = document.querySelectorAll('a.button.plus');
onClick(bPlus, function(el) {
cambiarPasajeros(el, 1);
});
function onClick(elements, f) {
Array.prototype.forEach.call(elements, function(el, i) {
el.addEventListener("click", function() {
f(el);
});
});
}
function getPaxLimit(paxType) {
var res;
switch (paxType) {
case "a":
res = {
max: 15,
min: 1
}
break;
case "n":
res = {
max: 15,
min: 0
}
break;
case "c":
res = {
max: 15,
min: 0
}
break;
}
return res;
}