Skip to content

Instantly share code, notes, and snippets.

@nnagornyy
Created November 24, 2017 06:57
Show Gist options
  • Save nnagornyy/0ff8cb68ec52148693f23e4341df4daf to your computer and use it in GitHub Desktop.
Save nnagornyy/0ff8cb68ec52148693f23e4341df4daf to your computer and use it in GitHub Desktop.
if (filtersliders.length > 0) {
$('.min-val').on('change', function () {
var $realInput = $(this).next('.min-val-input');
var currentVal = parseInt($(this).val().toString().replace(/[^\/\d]/g,''));
var currentId = $(this).attr('data-id');
filtersliders[currentId].noUiSlider.set([currentVal, null]);
addValues();
});
$('.max-val').on('change', function () {
var $realInput = $(this).next('.max-val-input');
var currentVal = parseInt($(this).val().toString().replace(/[^\/\d]/g,''));
var currentId = $(this).attr('data-id');
filtersliders[currentId].noUiSlider.set([null, currentVal]);
addValues();
});
function addValues() {
for (var i = 0; i < filtersliders.length; i++) {
//$(filterResBlocks[i]).text(filtersliders[i].noUiSlider.get());
var currentVal = filtersliders[i].noUiSlider.get();
var currentType = $(filterResBlocks[i]).attr('data-type');
$(filterResBlocks[i]).find('.min-val').val(currentVal[0] + ' ' + currentType).attr('data-val', currentVal[0]);
$(filterResBlocks[i]).find('.max-val').val(currentVal[1] + ' ' + currentType).attr('data-val', currentVal[1]);
var currentValMin = parseInt(currentVal[0].toString().replace(/(\s)+/g, ''));
var currentValMax = parseInt(currentVal[1].toString().replace(/(\s)+/g, ''));
$(filterResBlocks[i]).find('.min-val-input').val(currentValMin);
$(filterResBlocks[i]).find('.max-val-input').val(currentValMax);
smartFilter.keyup(document.getElementById('arrFilter_P1_MAX'));
}
}
var uiSlider = {
init: function () {
var rangeInputs = document.querySelectorAll('.number-range');
uiSlider.setup(rangeInputs);
},
setup: function (sliders) {
function data(element, value) {
return parseFloat(element.parentElement.getAttribute('data-' + value));
}
Array.prototype.forEach.call(sliders, function (slider) {
var min = data(slider, 'min'),
max = data(slider, 'max'),
step = data(slider, 'step'),
value = slider.parentElement.getAttribute('data-start').split(',');
noUiSlider.create(slider, {
start: value,
step: !isNaN(step) ? step : 1,
range: {'min': min, 'max': max},
format: wNumb({
decimals: 0,
thousand: ' '
})
});
slider.noUiSlider.on('slide', addValues);
slider.noUiSlider.on('end', function(){
smartFilter.keyup(document.getElementById('arrFilter_P1_MAX'));
});
});
}
};
uiSlider.init();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment