Commit 4b6802cf authored by Nikolay Gromov's avatar Nikolay Gromov

Поле ввода количества: js, обрабатывающий нажатия кнопок

parent a6275222
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 357 357"><path d="M357 204H0v-51h357v51z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 357 357"><path d="M357 204H204v153h-51V204H0v-51h153V0h51v153h153v51z"/></svg>
/* global document */ /* global document */
const closest = require('closest');
const ready = require('../../js/utils/documentReady.js'); const ready = require('../../js/utils/documentReady.js');
ready(function(){ ready(function(){
...@@ -8,17 +7,19 @@ ready(function(){ ...@@ -8,17 +7,19 @@ ready(function(){
var fields = document.querySelectorAll( '.field-num' ); var fields = document.querySelectorAll( '.field-num' );
Array.prototype.forEach.call( fields, function( field ) { Array.prototype.forEach.call( fields, function( field ) {
const input = field.querySelector('.field-num__input'); const input = field.querySelector('.field-num__input');
const btnPlus = field.querySelector('.field-num__btn--plus'); const valueMin = input.getAttribute('min') ? +input.getAttribute('min') : -Infinity;
const btnMinus = field.querySelector('.field-num__btn--minus'); const valueMax = input.getAttribute('max') ? +input.getAttribute('max') : Infinity;
const valueMin = input.getAttribute('min') ? input.getAttribute('min') : -Infinity; const valueStep = input.getAttribute('step') ? +input.getAttribute('step') : 1;
const valueMax = input.getAttribute('max') ? input.getAttribute('max') : Infinity;
const valueStep = input.getAttribute('step') ? input.getAttribute('step') : 1;
// console.log(input, btnMinus, btnPlus);
// console.log(valueMin, valueMax, valueStep);
// Нажатия кнопок
field.addEventListener('click', function(event){ field.addEventListener('click', function(event){
if(event.target.classList.contains('field-num__btn')) { if(event.target.classList.contains('field-num__btn') && !input.getAttribute('disabled')) {
// это клик по кнопке let num = parseInt(input.value);
if(isNaN(num)) num = 0;
if(event.target.classList.contains('field-num__btn--plus')) {
if (num < valueMax) input.value = num + valueStep;
}
if(event.target.classList.contains('field-num__btn--minus')) {
if (num > valueMin) input.value = num - valueStep;
}
} }
}); });
}); });
......
...@@ -42,9 +42,8 @@ ...@@ -42,9 +42,8 @@
padding: 0; padding: 0;
border-top-right-radius: $border-radius; border-top-right-radius: $border-radius;
border-bottom-right-radius: $border-radius; border-bottom-right-radius: $border-radius;
font-size: $font-size + 6; font: 0/0 a; // stylelint-disable-line
font-weight: 700; color: transparent;
text-align: center;
background: transparent; background: transparent;
&:hover, &:hover,
...@@ -59,10 +58,14 @@ ...@@ -59,10 +58,14 @@
&--plus { &--plus {
right: 1px; right: 1px;
background: svg-load('../field-num/bg-img/plus.svg') center no-repeat;
background-size: 14px 14px;
} }
&--minus { &--minus {
left: 1px; left: 1px;
background: svg-load('../field-num/bg-img/minus.svg') center no-repeat;
background-size: 14px 14px;
} }
#{$block-name}--disabled & { #{$block-name}--disabled & {
...@@ -70,7 +73,7 @@ ...@@ -70,7 +73,7 @@
&:hover, &:hover,
&:focus { &:focus {
background: transparent; background-color: transparent;
} }
} }
} }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
width: 100%; width: 100%;
min-height: calc(#{$line-height}em + #{$field-padding-vertical} + #{$field-padding-vertical} + 2px); // Привет, IE
margin: 0; margin: 0;
border: 1px solid $border-color; border: 1px solid $border-color;
border-radius: $border-radius; border-radius: $border-radius;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment