html 显示状态条,HTML5 圆环形分步骤进度显示条

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

(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();

}

}());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值