<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<!DOCTYPE html><html lang='en' class=''>
<head><script src='//production-assets.codepen.io/assets/editor/live/console_runner-079c09a0e3b9ff743e39ee2d5637b9216b3545af0de366d4b9aad9dc87e26bfd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/events_runner-73716630c22bbc8cff4bd0f07b135f00a0bdc5d14629260c3ec49e5606f98fdd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/css_live_reload_init-2c0dc5167d60a5af3ee189d570b1835129687ea2a61bee3513dee3a50c115a77.js'></script><meta charset='UTF-8'><meta name="robots" content="noindex"><link rel="shortcut icon" type="image/x-icon" href="//production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico" /><link rel="mask-icon" type="" href="//production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg" color="#111" /><link rel="canonical" href="https://codepen.io/team/Atcom/pen/KdmqWX?limit=all&page=3&q=Customisable" />
<link href='https://fonts.googleapis.com/css?family=Quicksand:300' rel='stylesheet' type='text/css'>
<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css'>
<style class="cp-pen-styles">html, body {padding:0; margin: 0; overflow:hidden;}
h1{color: #FFFFFF;font-size: 35px;line-height: 35px;}
#circularProgressStepCanvas {width:100%;height:100%;position:absolute;left:0;top:0;padding:0;margin:0;}
.container {width: 100%;height:100%;display:inline-block;position:relative;vertical-align: middle;}
.progressWrapper {display: inline-block;
width: 600px;
height: 600px;
text-align: center;
margin: 0 auto;
position: relative;
bottom: 50%;
margin-top: 50px;
}
.mainWraper{width:100%;height:100vh;position: relative;text-align: center;background-color: #222222;}
.progressText{margin-top: 282.5px;}
.indicator{color:#393939;font-size: 100px;font-family: 'Quicksand', sans-serif;line-height: 6;}
.title{font-family: 'Quicksand', sans-serif;color:#78766c;font-size:50px;max-width:600px;line-height:1; margin: 0 auto; position: relative; padding-top: 30px;}
.paging{width:100%;display:none;}
button {
-webkit-appearance: none;
background: transparent;
border: 0;
outline:0;
}
svg {
padding: 5px;
}
.arrow {
cursor: pointer;
position: absolute;
top: 50%;
margin-top: -45px;
margin-left: -35px;
width: 70px;
height: 90px;
}
.left {
left: -22%;
}
.right {
right: -24%;
}
.left:hover polyline,
.left:focus polyline {
stroke-width: 3;
}
.left:active polyline {
stroke-width: 6;
transition: all 100ms ease-in-out;
}
.right:hover polyline,
.right:focus polyline {
stroke-width: 3;
}
.right:active polyline {
stroke-width: 6;
transition: all 100ms ease-in-out;
}
polyline {
transition: all 250ms ease-in-out;
}
@media (max-width:600px), (max-height:600px){
.progressWrapper {width:350px;height:350px;}
.indicator{font-size: 70px; line-height:5});
}</style></head><body>
<div class="mainWraper">
<div class="title">ROUND PROGRESS INDICATOR</div>
<div class="progressWrapper" id="progressWrapper">
<div class="container">
<canvas id="circularProgressStepCanvas"></canvas>
<div class="indicator">
<span id="nInd">0</span><span>/</span><span id="tInd"></span>
</div>
<div class="paging" id="paging">
<button class="arrow left" id="arrowL">
<svg width="60px" height="80px" viewBox="0 0 50 80" xml:space="preserve">
<polyline fill="none" stroke="#78766c" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" points="
45.63,75.8 0.375,38.087 45.63,0.375 "/>
</svg>
</button>
<button class="arrow right" id="arrowR">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="60px" height="80px" viewBox="0 0 50 80" xml:space="preserve">
<polyline fill="none" stroke="#78766c" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" points="
0.375,0.375 45.63,38.087 0.375,75.8 "/>
</svg>
</button>
</div>
</div>
</div>
</div>
<script src='//production-assets.codepen.io/assets/common/stopExecutionOnTimeout-b2a7b3fe212eaa732349046d8416e00a9dec26eb7fd347590fbced3ab38af52e.js'></script><script src='https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.5/dat.gui.min.js'></script><script src='https://code.createjs.com/easeljs-0.8.1.min.js'></script><script src='//cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/TweenMax.min.js'></script><script src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/t-183/CircularProgressStep.js'></script>
<script >(function () {
var canvasElem = document.getElementById("circularProgressStepCanvas");
var totalInd = document.getElementById("tInd");
var nowInd = document.getElementById("nInd");
var wrap = document.getElementById("progressWrapper");
var paging = document.getElementById("paging");
var arrowL = document.getElementById("arrowL");
var arrowR = document.getElementById("arrowR");
var textTween = {value:0};
window.addEventListener("resize", resizeHandler);
arrowR.addEventListener("click", goNext);
arrowL.addEventListener("click", goPrev);
var Controls = function() {
this.mouseEnabled = true;
this.steps = 10;
this.emptyColor = "#393939"
this.fillColor = "#FF592F"
this.emptyStroke = 3;
this.fillStroke = 4;
this.dotRadius = 8;
this.reset = function(){
circular.reset();
}
};
var settings = new Controls();
var themes = {dotsNum:settings.steps, dotRadius:settings.dotRadius, mouseInteraction:settings.mouseEnabled, stepCallback:onStep, emptyColor:settings.emptyColor, fillColor:settings.fillColor, emptyStroke:settings.emptyStroke, fillStroke:settings.fillStroke, dotRadius:settings.dotRadius};
circular = new CircularProgressStep(canvasElem);
circular.setup(themes);
//
var gui = new dat.GUI();
gui.add(settings, 'mouseEnabled').onChange( onMouseEnabledChanged );
gui.add(settings, 'steps', 1, 20).step(1).onChange( onSettingsChanged );
gui.add(settings, "emptyStroke").onChange( onSettingsChanged );
gui.add(settings, "fillStroke").onChange( onSettingsChanged );
gui.add(settings, "dotRadius").onChange( onSettingsChanged );
gui.addColor(settings, "emptyColor").onChange( onSettingsChanged );
gui.addColor(settings, "fillColor").onChange( onSettingsChanged );
gui.add(settings, "reset");
//
setIndicatorTexts();
function onMouseEnabledChanged(){
circular.mouseEnabled(settings.mouseEnabled);
settings.mouseEnabled ? paging.style.display = "none" : paging.style.display = "block";
}
function onSettingsChanged(){
circular.setup({dotsNum:settings.steps, emptyColor:settings.emptyColor, fillColor:settings.fillColor, emptyStroke:settings.emptyStroke, fillStroke:settings.fillStroke, dotRadius:settings.dotRadius});
setIndicatorTexts();
}
function setIndicatorTexts(){
totalInd.innerText = totalInd.textContent = settings.steps + "";
}
function onStep(step){
//tween indicator value
var time = circular.duration * (Math.abs(textTween.value - step));
TweenMax.to(textTween, time, {value:step, ease:Power2.easeInOut, onUpdate:function(){
nowInd.innerText = nowInd.textContent = parseInt(textTween.value) + "";
}})
}
var prevWidth = 0;
function resizeHandler(){
if(wrap.offsetWidth != prevWidth){
//empty to change nothing
circular.setup();
}
prevWidth = wrap.offsetWidth;
}
function goNext(e){
circular.next();
}
function goPrev(e){
circular.prev();
}
}());
//# sourceURL=pen.js
</script>
</body></html>