Показать сообщение отдельно
  #6 (permalink)  
Старый 02.01.2019, 18:55
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Вариант
<style>
.podbor {
  position: relative;
}
.podbor>input {
  padding: 2px 2px 1px 4px;
  font-size: 30px;
  width: 70px;
  height: 40px;
  float: left;
  border: 1px solid #666;
  border-radius: 4px 0 0 4px;
}
.podbor>span {
  display: block;
  font-size: 18px;
  position: absolute;
  left: 58px;
  margin: 0;
  padding: 2px;
  line-height: 14px;
  width: 14px;
  border: 1px solid #666;
  background-color: #E4E4E4;
  text-align: center;
  cursor: pointer;
}
.podbor>.plus {
  border-bottom: none;
  height: 16px;
}
.podbor>.minus {
  top: 20px;
  height: 14px;
}
.podbor>span:hover {
  background-color: #999;
}
.clear {
  clear: both;
}
</style>
<div class="clear"></div>
<div class="podbor" data-min="0" data-max="5">
  <input type="text" value="1"/>
  <span class="plus">+</span>
  <span class="minus">-</span>
</div>
<div class="clear"></div>
<hr>
<div class="clear"></div>
<div class="podbor" data-min="3" data-max="8">
  <input type="text" value="3" />
  <span class="plus">+</span>
  <span class="minus">-</span>
</div>
<script>
(_ => {
  [...document.querySelectorAll('.podbor')].forEach(el => el.onclick = ({target, currentTarget}) => {
    if (target.tagName !== "SPAN") return;
    let inp = currentTarget.childNodes[1], val = +inp.value || +currentTarget.dataset.min || 0;
    inp.value = val + {minus: val > +currentTarget.dataset.min ? -1 : 0, plus: val < +currentTarget.dataset.max ? 1: 0}[target.className];
  });
})();
</script>
Ответить с цитированием