Html5进度条插件(自写)

(function () {
    window.H5ProgressBar = function (obj) {
        this.height = obj.height;
        this.width = obj.width;
        this.speed = obj.speed;

    };

    //在界面上布局元素
    H5ProgressBar.prototype.drawLayout = function () {
        document.write("<p id=\"loadTip\">开始下载</p>")
        document.write("<progress value=\"0\" max=\"100\" id=\"proDownFile\"></progress> ")
        document.write("<button id=\"load\">下载</button> <br> ")
        document.write("<br> ")
        document.write("设置宽度:<input  id=\"width\" placeholder=\"number类型\"><button id=\"setWidthBtn\">确定</button> <br> ")
        document.write("设置高度:<input  id=\"height\" placeholder=\"number类型\"><button id=\"setHeightBtn\">确定</button> <br> ")
        document.write("设置速度:<input  id=\"speed\" placeholder=\"number类型(1-100%)\"><button id=\"setSpeedBtn\" >确定</button> <br> ")
    }
    //初始化方法,即程序入口,一开始从这里执行
    H5ProgressBar.prototype.init = function () {
        this.drawLayout();
        var objPro = document.getElementById('proDownFile');
        var width = this.width + "px"
        var height = this.height + "px"


        objPro.style.width = width;
        objPro.style.height = height;

        this.setProgressWidth();
        this.setProgressHeight();
        this.load();
        this.setLoadSpeed();

    }
    //设置进度条的宽度
    H5ProgressBar.prototype.setProgressWidth = function () {
        var setWidthBtn = document.getElementById('setWidthBtn');
        setWidthBtn.addEventListener('click', function () {
            var progress = document.getElementById('proDownFile');
            var width = document.getElementById('width');
            var newWidth = width.value
            if (newWidth.length == 0) {
                alert("不能为空");
            } else {
                if (!isNaN(newWidth)) {
                    progress.style.width = newWidth + "px"
                }
                else {
                    alert("请输入数字类型")
                }

            }
        });
    }
    //设置进度条的高度
    H5ProgressBar.prototype.setProgressHeight = function () {
        var setHeightBtn = document.getElementById('setHeightBtn');
        setHeightBtn.addEventListener('click', function () {
            var progress = document.getElementById('proDownFile');
            var height = document.getElementById('height');
            var newHeight = height.value

            if (newHeight.length == 0) {
                alert("不能为空");
            } else {
                if (!isNaN(newHeight)) {
                    progress.style.height = newHeight + "px"
                }
                else {
                    alert("请输入数字类型")
                }

            }
        });
    }
    var intValue = 0;
    var intTimer;
    var objTip;
    //下载
    H5ProgressBar.prototype.load = function () {
        var load = document.getElementById('load');
        var time = 1000 - this.speed * 10;

        load.addEventListener('click', function () {

            Btn_Click(time);

        });

    }
    //设置下载速度
    H5ProgressBar.prototype.setLoadSpeed = function () {
        var speed = document.getElementById('setSpeedBtn');
        speed.addEventListener('click', function () {
            var speed = document.getElementById('speed');
            var newSpeed = speed.value

            if (newSpeed.length == 0) {
                alert("不能为空");
            }
            else {
                if (!isNaN(newSpeed)) {
                    if (newSpeed <= 0 || newSpeed > 100) {
                        alert("请设置1-100%之内的数")

                    } else {
                        Btn_Click(1000 - newSpeed * 10);
                    }
                }
                else {
                    alert("请输入数字类型")
                }
            }
        })
    }
    //设置时间
    function Btn_Click(time) {
        var progress = document.getElementById('proDownFile');
        intValue = progress.value

        if (intValue == progress.max) {
            reset()
        }
        else {
            intTimer = setInterval(Interval_handler, time);
        }

    }

    //重新下载
    function reset() {
        intValue = 0;
        var progress = document.getElementById('proDownFile');
        intTimer = setInterval(Interval_handler, 1000);
    }

    //定时事件
    function Interval_handler() {
        intValue++;
        var objPro = document.getElementById('proDownFile');
        objTip = document.getElementById('loadTip');
        objPro.value = intValue;
        if (intValue >= objPro.max) {
            clearInterval(intTimer);
            objTip.innerHTML = "下载完成";
        } else {
            intValue += Math.random() * 1.8;
            intValue = parseFloat(intValue.toFixed(1));
            objTip.innerHTML = "正在下载" + intValue + "%";

        }
    }

})();

用法:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<script type="text/javascript" src="js/H5ProgressBar.js"></script>
<script type="text/javascript">
    new H5ProgressBar({
        height:20,
        width:500,
        speed:10
    }).init();
</script>
</body>
</html>


  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
非常精美的h5 进度条 |DEMO_jQuery之家-自由分享jQuery、html5、css3的插件库 <!----> .ClassyCountdownDemo { margin:0 auto 30px auto; max-width:800px; width:calc(100%); padding:30px; display:block } #countdown2 { background:#FFF } #countdown3 { background:rgb(52, 73, 94) } #countdown4 { background:#222 } #countdown5 { background:#222 } #countdown6 { background:#222 } #countdown7 { background:#222 } #countdown8 { background:#222 } #countdown9 { background:#FFF } #countdown10 { background:#3498db } jQuery炫酷图片预览Lightbox插件 A jQuery plugin designed to provide gallery view for images jQuery之家 返回下载页 Example $(document).ready(function() { $('#countdown15').ClassyCountdown({ theme: "flat-colors", end: $.now() + 10000 }); $('#countdown16').ClassyCountdown({ theme: "flat-colors-wide", end: $.now() + 10000 }); $('#countdown17').ClassyCountdown({ theme: "flat-colors-very-wide", end: $.now() + 10000 }); $('#countdown18').ClassyCountdown({ theme: "flat-colors-black", end: $.now() + 10000 }); $('#countdown1').ClassyCountdown({ theme: "white", end: $.now() + 645600 }); $('#countdown5').ClassyCountdown({ theme: "white", end: $.now() + 10000 }); $('#countdown6').ClassyCountdown({ theme: "white-wide", end: $.now() + 10000 }); $('#countdown7').ClassyCountdown({ theme: "white-very-wide", end: $.now() + 10000 }); $('#countdown8').ClassyCountdown({ theme: "white-black", end: $.now() + 10000 }); $('#countdown11').ClassyCountdown({ theme: "black", style: { secondsElement: { gauge: { fgColor: "#F00" } } }, end: $.now() + 10000 }); $('#countdown12').ClassyCountdown({ theme: "black-wide", labels: false, end: $.now() + 10000 }); $('#countdown13').ClassyCountdown({ theme: "black-very-wide", labelsOptions: { lang: { days: 'D', hours: 'H', minutes: 'M', seconds: 'S' }, style: 'font-size:0.5em; text-transform:uppercase;' }, end: $.now() + 10000 }); $('#countdown14').ClassyCountdown({ theme: "black-black", labelsOptions: { style: 'font-size:0.5em; text-transform:uppercase;' }, end: $.now() + 10000 }); $('#countdown4').ClassyCountdown({ end: $.now() + 10000, labels: true, style: { element: "", textResponsive: .5, days: { gauge: { thickness: .03, bgColor: "rgba(255,255,255,0.05)", fgColor: "#1abc9c" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#fff;' }, hours: { gauge: { thickness: .03, bgColor: "rgba(255,255,255,0.05)", fgColor: "#2980b9" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#fff;' }, minutes: { gauge: { thickness: .03, bgColor: "rgba(255,255,255,0.05)", fgColor: "#8e44ad" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#fff;' }, seconds: { gauge: { thickness: .03, bgColor: "rgba(255,255,255,0.05)", fgColor: "#f39c12" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#fff;' } }, onEndCallback: function() { console.log("Time out!"); } }); $('#countdown2').ClassyCountdown({ end: '1388468325', now: '1378441323', labels: true, style: { element: "", textResponsive: .5, days: { gauge: { thickness: .01, bgColor: "rgba(0,0,0,0.05)", fgColor: "#1abc9c" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' }, hours: { gauge: { thickness: .01, bgColor: "rgba(0,0,0,0.05)", fgColor: "#2980b9" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' }, minutes: { gauge: { thickness: .01, bgColor: "rgba(0,0,0,0.05)", fgColor: "#8e44ad" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' }, seconds: { gauge: { thickness: .01, bgColor: "rgba(0,0,0,0.05)", fgColor: "#f39c12" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' } }, onEndCallback: function() { console.log("Time out!"); } }); $('#countdown9').ClassyCountdown({ end: '1388468325', now: '1380501323', labels: true, style: { element: "", textResponsive: .5, days: { gauge: { thickness: .05, bgColor: "rgba(0,0,0,0)", fgColor: "#1abc9c", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' }, hours: { gauge: { thickness: .05, bgColor: "rgba(0,0,0,0)", fgColor: "#2980b9", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' }, minutes: { gauge: { thickness: .05, bgColor: "rgba(0,0,0,0)", fgColor: "#8e44ad", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' }, seconds: { gauge: { thickness: .05, bgColor: "rgba(0,0,0,0)", fgColor: "#f39c12", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;' } }, onEndCallback: function() { console.log("Time out!"); } }); $('#countdown10').ClassyCountdown({ end: '1397468325', now: '1388471324', labels: true, labelsOptions: { lang: { days: 'D', hours: 'H', minutes: 'M', seconds: 'S' }, style: 'font-size:0.5em; text-transform:uppercase;' }, style: { element: "", textResponsive: .5, days: { gauge: { thickness: .02, bgColor: "rgba(255,255,255,0.1)", fgColor: "rgba(255,255,255,1)", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' }, hours: { gauge: { thickness: .02, bgColor: "rgba(255,255,255,0.1)", fgColor: "rgba(255,255,255,1)", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' }, minutes: { gauge: { thickness: .02, bgColor: "rgba(255,255,255,0.1)", fgColor: "rgba(255,255,255,1)", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' }, seconds: { gauge: { thickness: .02, bgColor: "rgba(255,255,255,0.1)", fgColor: "rgba(255,255,255,1)", lineCap: 'round' }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' }, }, onEndCallback: function() { console.log("Time out!"); } }); $('#countdown3').ClassyCountdown({ end: '1390868325', now: '1388461323', labels: true, labelsOptions: { lang: { days: 'Zile', hours: 'Ore', minutes: 'Minute', seconds: 'Secunde' }, style: 'font-size:0.5em; text-transform:uppercase;' }, style: { element: "", textResponsive: .5, days: { gauge: { thickness: .2, bgColor: "rgba(255,255,255,0.2)", fgColor: "rgb(241, 196, 15)" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' }, hours: { gauge: { thickness: .2, bgColor: "rgba(255,255,255,0.2)", fgColor: "rgb(241, 196, 15)" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' }, minutes: { gauge: { thickness: .2, bgColor: "rgba(255,255,255,0.2)", fgColor: "rgb(241, 196, 15)" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' }, seconds: { gauge: { thickness: .2, bgColor: "rgba(255,255,255,0.2)", fgColor: "rgb(241, 196, 15)" }, textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:rgba(255,255,255,0.7);' } }, onEndCallback: function() { console.log("Time out!"); } }); }); 如果你喜欢这个插件,那么你可能也喜欢: html5+jquery通过鼠标控制的圆形进度条 jQuery和css3旋钮控制按钮-knobKnob

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值