Como criar: Deslizador de faixa

Aprenda a usar CSS e JavaScript para criar deslizadores de faixa personalizados.

Padrão:

Caixa:

Ponto:

Imagem:

Valor:

Experimente pessoalmente

Criar um deslizador de faixa

Primeiro passo - Adicionar HTML:

<div class="slidecontainer">
  <input type="range" min="1" max="100" value="50" class="slider" id="myRange">
</div>

Segundo passo - Adicionar CSS:

.slidecontainer {
  width: 100%; /* Largura do contêiner externo */
}
/* O deslizador em si */
.slider {
  -webkit-appearance: none;  /* Cobre o estilo CSS padrão */
  appearance: none;
  width: 100%; /* Largura total */
  height: 25px; /* Altura especificada */
  background: #d3d3d3; /* Fundo cinza */
  outline: none; /* Remove a contorno */
  opacity: 0.7; /* Define a opacidade (usada para o efeito ao passar o mouse) */
  -webkit-transition: .2s; /* Efeito de transição de 0.2 segundos */
  transition: opacity .2s;
}
/* Efeito ao passar o mouse */
.slider:hover {
  opacity: 1; /* Exibe completamente ao passar o mouse */
}
/* Manopla do deslizador (usa -webkit- (Chrome, Opera, Safari, Edge) e -moz- (Firefox) para cobrir o estilo padrão) */
.slider::-webkit-slider-thumb {
  -webkit-appearance: none; /* Cobre o estilo padrão */
  appearance: none;
  width: 25px; /* Definir largura específica da alça do deslizador */
  height: 25px; /* Altura da alça do deslizador */
  background: #04AA6D; /* Fundo verde */
  cursor: pointer; /* Cursor ao passar o mouse */
}
.slider::-moz-range-thumb {
  width: 25px; /* Definir largura específica da alça do deslizador */
  height: 25px; /* Altura da alça do deslizador */
  background: #04AA6D; /* Fundo verde */
  cursor: pointer; /* Cursor ao passar o mouse */
}

Experimente pessoalmente

Passo 3 - Adicionar JavaScript:

Crie um deslizador de faixa dinâmico usando JavaScript para exibir o valor atual:

var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value; // Mostrar o valor padrão do deslizador
// Atualizar o valor atual do deslizador (cada vez que arrastar a alça do deslizador)
slider.oninput = function() {
  output.innerHTML = this.value;
}

Experimente pessoalmente

Deslizador circular

Para criar uma alça de deslizador circular, use: border-radius propriedade.

Dica:Se você deseja alturas diferentes (no exemplo, 15 pixels e 25 pixels), defina a altura do deslizador para um valor diferente do polegar do deslizador:

Instância

.slider {
  -webkit-appearance: none;
  width: 100%;
  height: 15px;
  border-radius: 5px;  
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}
.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  border-radius: 50%; 
  background: #04AA6D;
  cursor: pointer;
}
.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #04AA6D;
  cursor: pointer;
}

Experimente pessoalmente

Ícone/Imagem do deslizador

Para criar uma alça de deslizador com ícone/imagem, use: background Inserir URL da imagem na propriedade:

Instância

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 23px;
  height: 24px;
  border: 0;
  background: url('contrasticon.png');
  cursor: pointer;
}
.slider::-moz-range-thumb {
  width: 23px;
  height: 25px;
  border: 0;
  background: url('contrasticon.png');
  cursor: pointer;
}

Experimente pessoalmente