Как сделать нормальный слайдер (input range)

Как сделать такой слайдер?

пример слайдера

Всё что выходило, это только это:

введите сюда описание изображения

введите сюда описание изображения


Ответы (2 шт):

Автор решения: corrbase

Вот что у меня получилось

цвет можеш поменять сам, так же witdh и height.

input[type=range] {
  height: 37px;
  -webkit-appearance: none;
  margin: 10px 0;
  width: 100%;
}
input[type=range]:focus {
  outline: none;
}
input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 15px;
  cursor: pointer;
  animate: 0.2s;
  box-shadow: 0px 0px 0px #363636;
  background: #03FFFF;
  border-radius: 10px;
  border: 5px solid #03FFFF;
}
input[type=range]::-webkit-slider-thumb {
  box-shadow: 0px 0px 0px #313131;
  border: 5px solid #303030;
  height: 26px;
  width: 26px;
  border-radius: 18px;
  background: #03FFFF;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -10.5px;
}
input[type=range]:focus::-webkit-slider-runnable-track {
  background: #03FFFF;
}
input[type=range]::-moz-range-track {
  width: 100%;
  height: 15px;
  cursor: pointer;
  animate: 0.2s;
  box-shadow: 0px 0px 0px #363636;
  background: #03FFFF;
  border-radius: 10px;
  border: 5px solid #03FFFF;
}
input[type=range]::-moz-range-thumb {
  box-shadow: 0px 0px 0px #313131;
  border: 5px solid #303030;
  height: 26px;
  width: 26px;
  border-radius: 18px;
  background: #03FFFF;
  cursor: pointer;
}
input[type=range]::-ms-track {
  width: 100%;
  height: 15px;
  cursor: pointer;
  animate: 0.2s;
  background: transparent;
  border-color: transparent;
  color: transparent;
}
input[type=range]::-ms-fill-lower {
  background: #03FFFF;
  border: 5px solid #03FFFF;
  border-radius: 20px;
  box-shadow: 0px 0px 0px #363636;
}
input[type=range]::-ms-fill-upper {
  background: #03FFFF;
  border: 5px solid #03FFFF;
  border-radius: 20px;
  box-shadow: 0px 0px 0px #363636;
}
input[type=range]::-ms-thumb {
  margin-top: 1px;
  box-shadow: 0px 0px 0px #313131;
  border: 5px solid #303030;
  height: 26px;
  width: 26px;
  border-radius: 18px;
  background: #03FFFF;
  cursor: pointer;
}
input[type=range]:focus::-ms-fill-lower {
  background: #03FFFF;
}
input[type=range]:focus::-ms-fill-upper {
  background: #03FFFF;
}
  <input type="range" min="1" max="100" value="50">

→ Ссылка
Автор решения: corrbase

можно попробовать так но нужно использовать js

$('input[type=range]').on('input', function(e){
  var min = e.target.min,
      max = e.target.max,
      val = e.target.value;
  
  $(e.target).css({
    'backgroundSize': (val - min) * 100 / (max - min) + '% 100%'
  });
}).trigger('input');
html, body {
    height: 100%;
    padding: 0;
    margin: 0;
}

input[type=range] {
    margin: auto;
    outline: none;
    padding: 0;
    width: 200px;
    height: 10px;
    background-color: #dedede;
    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #4BC0FD), color-stop(100%, #4BC0FD));
    background-size: 50% 100%;
    background-repeat: no-repeat;
    border-radius: 10px;
    cursor: pointer;
    -webkit-appearance: none;
}

input[type=range]::-webkit-slider-runnable-track {
    box-shadow: none;
    border: none;
    background: transparent;
    -webkit-appearance: none;
}


input[type=range]::-webkit-slider-thumb {
  height: 18px;
  width: 18px;
   
    background: #fffddd;
    border: 4px solid #777;
    border-radius: 50%;
    box-shadow: 0 0 1px 0px rgba(0,0,0,0.1);
    -webkit-appearance: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input type="range" min="0" max="100" value="40" />

→ Ссылка