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

Default
00
100
Slider 2 pontos
20
80
Normal
Hover
Pressed
Disabled

Código

Esse componente utiliza os plugins JQuery UI e jQuery UI Touch Punch.

HTML
Copiar código
Copiar Código
Exibir 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
Copiar código
Copiar Código
Exibir 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
Copiar código
Copiar Código
Exibir 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); } });