Rang ToolTips

https://dlilb.com

by Dmitry Khmil

HTML

<div class="itemdetail rnge">
		<span>Time</span>
		
		<div class="range-slider">
			<span id="rs-bullet" class="rs-label times">8</span>
			<input id="rs-range-line" class="rs-range" type="range" value="8" min="8" max="22" />
			<output id="outputvalue"></output>
		</div>
	</div>

CSS

.range-slider {
    margin: 50px 5%;
    width: 90%;
}

.rs-range {
  margin-top: 29px;
  width: 100%;
  -webkit-appearance: none;
}
.rs-range:focus {
  outline: none;
}
.rs-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 1px;
  cursor: pointer;
  box-shadow: none;
  backdround:linear-gradient(90deg, rgb(214,214,214) 60%, rgb(214,214,214));
  border-radius: 0px;
  border: 0px solid #010101;
}
.rs-range::-moz-range-track {
  width: 100%;
  height: 1px;
  cursor: pointer;
  box-shadow: none;
  background: #ffffff;
  border-radius: 0px;
  border: 0px solid #010101;
}
.rs-range::-webkit-slider-thumb {
  box-shadow: none;
  border: 0px solid #ffffff;
  box-shadow: 0px 10px 10px rgba(0, 0, 0, 0.25);
  width: 68px;
  height: 32px;
  border-radius: 32px;
  background: transparent;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -16px;
  z-index: 1;
	position: relative;
}
.rs-range::-moz-range-thumb {
  box-shadow: none;
  border: 0px solid #ffffff;
  box-shadow: 0px 10px 10px rgba(0, 0, 0, 0.25);
  width: 68px;
  height: 32px;
  border-radius: 22px;
  background: transparent;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -16px;
  z-index: 1;
	position: relative;
}
.rs-range::-moz-focus-outer {
  border: 0;
}

.rs-label {
    position: relative;
    transform-origin: center center;
    display: block;
    width: 68px;
    height: 32px;
    background: #141320;
    border-radius: 32px;
    line-height: 30px;
    text-align: center;
    font-weight: bold;
    padding: 6px;
    box-sizing: border-box;
    border: 1px solid #fff;
    margin: 0 0 -45px 2px;
    left: attr(value);
    color: #fff;
    font-style: normal;
    font-weight: normal;
    line-height: normal;
    font-size: 17px;
    z-index: 0;
}
.rs-label.times::after {
    content: ":00";
    font-size: 17px;
    letter-spacing: 0.07em;
    margin: 0;
    float: none;
    display: inline-block;
}

JavaScript

var rangeSlider = document.getElementById("rs-range-line"); //полоска
var rangeBullet = document.getElementById("rs-bullet"); //ползунок
var outputvalue = document.getElementById("outputvalue"); //ползунок

outputvalue.innerHTML = rangeSlider.value;
	
rangeSlider.addEventListener("input", showSliderValue, false);

function showSliderValue() {
  rangeBullet.innerHTML = rangeSlider.value;
  outputvalue.innerHTML = this.value;
  var bulletPosition = (rangeSlider.value /rangeSlider.max);

//var width = document.body.clientWidth * 0.9 * 0.66;

console.log(rangeSlider.offsetWidth);
rangeBullet.style.left = (((rangeSlider.offsetWidth - 68) / (22 - 8)) * (this.value - 8)) + "px";

	
var x = (rangeSlider.value/rangeSlider.max*100);
var colors = 'linear-gradient(90deg, rgb(121,77,246)' + x + '%, rgb(214,214,214)' + x + '%)';
rangeSlider.style.background = colors;
	
}