Slider
Sliders oferecem uma maneira mais visual para a seleção de dados dentro de determinado range. Podem substituir uma sequência de radio-buttons (desde que a sequência indique uma progressão hierárquica) ou um input de texto.
Estados de interação
Código
Esse componente utiliza os plugins JQuery UI e jQuery UI Touch Punch.
HTML
Exibir código
Copiar código

<div class="slider default">
<div class="handle ui-slider-handle">
<div class="present-value"></div>
</div>
</div>
<div class="slider default min-max">
<div class="min-value">00</div>
<div class="handle ui-slider-handle">
<div class="present-value"></div>
</div>
<div class="max-value">100</div>
</div>
<div class="slider ranges min-max">
<div class="min-value">20</div>
<div class="handle ui-slider-handle">
<div class="present-value min-v"></div>
</div>
<div class="handle ui-slider-handle">
<div class="present-value max-v"></div>
</div>
<div class="max-value">80</div>
</div>
SASS
Exibir código
Copiar código

.slider{
position: relative;
transition: .4s;
&.ui-widget.ui-widget-content {
border: none!important;
height: 2px;
border-radius: 2.5px;
background-color: #cccccc;
}
.present-value{
display: none;
position: absolute;
font-family: Lato;
top: -32px;
font-size: 0.62em;
color: #fff;
background-color: #1f2a54;
padding: 7px 17px 6PX;
text-align: center;
box-sizing: border-box;
left: -15px;
border-radius: 4px;
&:before{
width: 7px;
height: 7px;
transform: rotate(45deg);
position: absolute;
content: "";
background-color: #1f2b54;
left: 41%;
bottom: -2px;
border-radius: 2px;
}
}
&.default:hover,
&.hovered{
.handle{
box-shadow: 0px 0px 0px 6px rgba(49, 82, 245, 0.49)!important;
}
}
.handle:hover{
box-shadow: 0px 0px 0px 6px rgba(49, 82, 245, 0.49)!important;
}
.ui-state-active{
box-shadow: 0px 0px 0px 6px rgba(49, 82, 245, 0.70)!important;
.present-value{
display: block;
}
}
&.pressed{
.handle{
box-shadow: 0px 0px 0px 6px rgba(49, 82, 245, 0.70)!important;
}
}
&.disabled{
pointer-events: none;
background-color: #ebebeb!important;
.handle,
&.ui-slider-horizontal .ui-slider-range-min{
background-color: #ebebeb!important;
}
}
.ui-slider-handle{
width: 16px;
height: 16px;
border-radius: 8px;
background-color: #3153f5;
box-shadow: none;
border: none;
top: -.42em;
transition: box-shadow .4s;
outline: none;
}
&.ranges{
&.ui-slider-horizontal .ui-slider-range{
left: 0;
height: 2px;
border-radius: 2.5px;
background-color: #3153f5;
}
}
&.default{
&.ui-slider-horizontal .ui-slider-range-min{
left: 0;
height: 2px;
border-radius: 2.5px;
background-color: #3153f5;
}
}
&.min-max{
width: 80%;
margin: 0 auto;
> .min-value{
font-family: Lato;
font-size: 0.875em;
font-weight: normal;
font-style: normal;
font-stretch: normal;
line-height: 1.43;
letter-spacing: normal;
color: #323232;
position: absolute;
left: -30px;
top: -9px;
}
> .max-value{
font-family: Lato;
font-size: 0.875em;
font-weight: normal;
font-style: normal;
font-stretch: normal;
line-height: 1.43;
letter-spacing: normal;
color: #323232;
position: absolute;
right: -37px;
top: -9px;
}
}
}
JS
Exibir código
Copiar código

$('.slider.default').slider({
range: 'min',
max:100,
value: 100,
slide: function(event, ui) {
$('.slider.default .present-value').html(ui.value);
},
create: function() {
$('.slider.default .present-value').html(100);
}
});
$('.slider.ranges').slider({
range: true,
min: 20,
max: 80,
values: [ 30, 70 ],
slide: function(event, ui) {
$('.slider.ranges .present-value.min-v').html(ui.values[0]);
$('.slider.ranges .present-value.max-v').html(ui.values[1]);
},
create: function() {
$('.slider.ranges .present-value.min-v').html(30);
$('.slider.ranges .present-value.max-v').html(70);
}
});