zoukankan      html  css  js  c++  java
  • easyui源码翻译1.32---ProgressBar(进度条)

    前言

    使用$.fn.progressbar.defaults重写默认值对象。下载该插件翻译源码

    进度条提供了一个反馈显示一个长时间运行的操作进展。可以更新的进展条,让用户知道当前正在执行操作。

    源码

    /**
     * jQuery EasyUI 1.3.2
     * 
     *翻译:qq 1364386878 进度条
     */
    (function ($) {
        //初始化
        function init(target) {
            $(target).addClass("progressbar");
            $(target).html("<div class="progressbar-text"></div><div class="progressbar-value"><div class="progressbar-text"></div></div>");
            return $(target);
        };
        //调整大小
        function _resize(jq, width) {
            var options = $.data(jq, "progressbar").options;
            var bar = $.data(jq, "progressbar").bar;
            if (width) {
                options.width = width;
            }
            bar._outerWidth(options.width)._outerHeight(options.height);
            bar.find("div.progressbar-text").width(bar.width());
            bar.find("div.progressbar-text,div.progressbar-value").css({ height: bar.height() + "px", lineHeight: bar.height() + "px" });
        };
        //实例化进度条组件
        $.fn.progressbar = function (target, parm) {
            if (typeof target == "string") {
                var method = $.fn.progressbar.methods[target];
                if (method) {
                    return method(this, parm);
                }
            }
            target = target || {};
            return this.each(function () {
                var progressbar = $.data(this, "progressbar");
                if (progressbar) {
                    $.extend(progressbar.options, target);
                } else {
                    progressbar = $.data(this, "progressbar",
                        {
                            options: $.extend({}, $.fn.progressbar.defaults,
                              $.fn.progressbar.parseOptions(this), target),
                            bar: init(this)
                        });
                }
                $(this).progressbar("setValue", progressbar.options.value);
                _resize(this);
            });
        };
        //默认方法
        $.fn.progressbar.methods = {
            //返回属性对象
            options: function (jq) {
                return $.data(jq[0], "progressbar").options;
            },
            //组件大小。
            resize: function (jq, width) {
                return jq.each(function () {
                    _resize(this, width);
                });
            },
            //返回当前进度值
            getValue: function (jq) {
                return $.data(jq[0], "progressbar").options.value;
            },
            //设置一个新的进度值
            setValue: function (jq, value) {
                if (value < 0) {
                    value = 0;
                }
                if (value > 100) {
                    value = 100;
                }
                return jq.each(function () {
                    var options = $.data(this, "progressbar").options;
                    var text = options.text.replace(/{value}/, value);
                    var oldVal = options.value;
                    options.value = value;
                    $(this).find("div.progressbar-value").width(value + "%");
                    $(this).find("div.progressbar-text").html(text);
                    if (oldVal != value) {
                        options.onChange.call(this, value, oldVal);
                    }
                });
            }
        };
        //解析器
        $.fn.progressbar.parseOptions = function (target) {
            return $.extend({}, $.parser.parseOptions(target,
                ["width", "height", "text", { value: "number" }]));
        };
        //默认属性和事件
        $.fn.progressbar.defaults = {
             "auto",//设置进度条宽度
            height: 22,//设置进度条gao度
            value: 0,//百分比值
            text: "{value}%",//要在组件上显示的文本模板
            onChange: function (newValue, oldValue) {
            }
        };
    })(jQuery);
    View Code

    示例代码

     

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Basic ProgressBar - jQuery EasyUI Demo</title>
        <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
        <link rel="stylesheet" type="text/css" href="../../themes/icon.css">
        <link rel="stylesheet" type="text/css" href="../demo.css">
        <script type="text/javascript" src="../../jquery-1.8.0.min.js"></script>
        <script src="../../plugins2/jquery.parser.js"></script>
        <script src="../../plugins2/jquery.progressbar.js"></script>
    </head>
    <body>
        <h2>Basic ProgressBar</h2>
        <div class="demo-info">
            <div class="demo-tip icon-tip"></div>
            <div>Click the button below to show progress information.</div>
        </div>
        <div style="margin:10px 0;">
            <a href="#" class="easyui-linkbutton" onclick="start()">Start</a>
        </div>
        <div id="p" class="easyui-progressbar" style="400px;"></div>
        <script>
            function start(){
                var value = $('#p').progressbar('getValue');
                if (value < 100){
                    value += Math.floor(Math.random() * 10);
                    $('#p').progressbar('setValue', value);
                    setTimeout(arguments.callee, 200);
                }
            };
        </script>
    </body>
    </html>
    View Code

    插件效果

    热爱编程,热爱技术,热爱生活
  • 相关阅读:
    Unity进阶:行为树 01
    球球大作战 01 小球的移动和碰到金币,金币会消失。
    Fire Balls 03—— 多个圆环以及圆环的变速变向
    Unity经典案例之:Fire Balls 多个圆环以及圆环的变速变向
    Unity进阶之ET网络游戏开发框架 08-深入登录成功消息
    Unity进阶之ET网络游戏开发框架 07-修正游客登录的异步BUG
    Unity进阶之ET网络游戏开发框架 06-游客登录
    Unity进阶之ET网络游戏开发框架 05-搭建自己的第一个Scene
    Unity进阶之ET网络游戏开发框架 04-资源打包
    [转]深入理解闭包(二)
  • 原文地址:https://www.cnblogs.com/DemoLee/p/3501010.html
Copyright © 2011-2022 走看看