Input slider

by talvinder400

HTML

<div class="container">
<div class="donut-chart-block block">
<div class="donut-chart">
<div id="section1" class="clip">
<div class="item"></div>
</div>
<div id="section2" class="clip">
<div class="item"></div>
</div>
<div id="section3" class="clip">
<div class="item"></div>
</div>
<div class="center">
<span></span>
</div>
</div>
</div>
<div class="range-slider">
<input type="range" orient="vertical" min="0" max="70" class="range"/>
<div class="range-slider__bar"></div>
<div class="range-slider__thumb"></div>
</div>
</div>
<div id="content">	
<p>Dummy text Dummy textDummy textDummy textDummy textDummy textDummy textDummy textDummy textDummy textDummy textDummy textDummy textDummy textDummy text
</p></div>

<div id="content2">	
<p>lorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsum
</p></div>

CSS

.container {
padding-top: 40px;
display: inline-block;
}
.block {
margin: 25px 25px 0 0;
background: ;
border-radius: 5px;
float: left;
width: 300px;
overflow: hidden;
}

.donut-chart-block {
overflow: hidden;
}

.donut-chart {
position: relative;	
width: 200px;
height: 200px;
margin: 2rem auto;
border-radius: 100%
}

.donut-chart .center {
background: #fff;
border-radius: 50%;
height: 60%;
left: 20%;
position: absolute;
top: 20%;
width: 60%;
}

.center span {
color: #000;
display: block;
font-size: 36px;
font-weight: 500;
left: 50%;
position: absolute;
top: 50%;
transform: translate(-50%,-50%);
}

.clip {
border-radius: 50%;
clip: rect(0px, 200px, 200px, 100px);
height: 100%;
position: absolute;
width: 100%;
}

.item {
border-radius: 50%;
clip: rect(0px, 100px, 200px, 0px);
height: 100%;
position: absolute;
width: 100%;
font-family: monospace;
font-size: 1.5rem;
}

#section1 {
transform: rotate(0deg);
}

#section1 .item {
background-color: #ffe600;
transform: rotate(180deg);
}

#section2 {
transform: rotate(180deg);
}

#section2 .item {
background-color: #c4c4cd;
transform: rotate(180deg);
}

/*  slider */
.range-slider {
display: inline-block;
width: 40px;
position: relative;
text-align: center;
height: 300px;

}
.range-slider__thumb {
position: absolute;
left: 5px;
width: 30px;
height: 30px;
line-height: 30px;
background: #ffe600;
color: #000;
font-size: 80%;
border-radius: 50%;
pointer-events: none;
}
.range-slider__bar {
left: 16px;
bottom: -200px;
position: absolute;
pointer-events: none;
width: 8px;
border-radius: 10px;
}
.range-slider input[type=range][orient=vertical] {
position: relative;
margin: 0;
height: 100%;
width: 100%;
display: inline-block;
position: relative;
writing-mode: bt-lr;
-webkit-appearance: slider-vertical;
}
.range-slider input[type=range][orient=vertical]::-webkit-slider-runnable-track, .range-slider input[type=range][orient=vertical]::-webkit-slider-thumb {
-webkit-appearance: none;
}
.range-slider...

JavaScript

function updateDonut(percent, element){
//var percent = 45;
if (percent < 50){
offset = (360 / 100) * percent;
element.parentNode.querySelector("#section3").style.webkitTransform = "rotate(" + offset + "deg)";
element.parentNode.querySelector("#section3 .item").style.webkitTransform = "rotate(" + (180 - offset) + "deg)";
element.parentNode.querySelector("#section3").style.msTransform = "rotate(" + offset + "deg)";
element.parentNode.querySelector("#section3 .item").style.msTransform = "rotate(" + (180 - offset) + "deg)";
element.parentNode.querySelector("#section3").style.MozTransform = "rotate(" + offset + "deg)";
element.parentNode.querySelector("#section3 .item").style.MozTransform = "rotate(" + (180 - offset) + "deg)";
element.parentNode.querySelector("#section3 .item").style.backgroundColor = "#c4c4cd";
} else { 
offset = ((360 / 100) * percent) - 180;
element.parentNode.querySelector("#section3").style.webkitTransform = "rotate(180deg)";
element.parentNode.querySelector("#section3 .item").style.webkitTransform = "rotate(" +  offset + "deg)";
element.parentNode.querySelector("#section3").style.msTransform = "rotate(180deg)";
element.parentNode.querySelector("#section3 .item").style.msTransform = "rotate(" +  offset + "deg)";
element.parentNode.querySelector("#section3").style.MozTransform = "rotate(180deg)";
element.parentNode.querySelector("#section3 .item").style.MozTransform = "rotate(" +  offset + "deg)";   
element.parentNode.querySelector("#section3 .item").style.backgroundColor = "#ffe600";
}
element.parentNode.querySelector("span").innerHTML = percent + "%";
}

function updateSlider(element) {
if (element) {
var parent = element.parentElement;
var thumb = parent.querySelector('.range-slider__thumb'),
bar = parent.querySelector('.range-slider__bar'),
pct = element.value * ((parent.clientHeight - thumb.clientHeight) / parent.clientHeight);
thumb.style.bottom = pct + '%';
bar.style.height = 'calc(' + pct + '% + ' + thumb.clientHeight / 2 +...