博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进度条
阅读量:4507 次
发布时间:2019-06-08

本文共 3190 字,大约阅读时间需要 10 分钟。

var ProgressBar = function (divObj,innerClass,outerClass,time) {    var _self = this;    //缓存宽度,以及内联Div    var _outerWidth,_innerDiv;    //div容器    _self._divObj = divObj;    //内围divClass    _self._innerClass = innerClass;    //外围DivClass    _self._outerClass = outerClass;    //总时间    _self._time = time;    //设置内围Class    _self.SetInnerClass = function (innerClass) {        _self._innerClass = innerClass;      }    //完成时回调    _self.completed = function (callback) {        if (typeof callback == 'function') {            _self._completed = callback;        } else {            throw new Error('callback must be a function type');        }    }    //间隔执行函数,每个interval回调一次    _self.intervalFn = function (interval, callback) {        if (typeof interval == 'number' && typeof callback == 'function') {            if (interval % 10 == 0) {                _self._intervalFn = callback;                _self._interval = interval;            } else {                throw new Error('interval must be divied with no remainder 10');            }        } else {            throw new Error('callback must be a function type and the interval must be a Number type');        }    }    if (typeof ProgressBar._initialized == 'undefined') {                //绘制div        ProgressBar.prototype._html = function () {            var html = [];            html.push('
'); return html.join(''); } //初始化 ProgressBar.prototype.init = function () { _self._divObj.append(_self._html()); _outerWidth = _self._divObj.find('div.' + _self._outerClass).width(); _innerDiv = _self._divObj.find('div.' + _self._innerClass); } //重置 ProgressBar.prototype.reset = function () { _innerDiv.css('width', 0); } //执行间隔回调 ProgressBar.prototype._evalIntervalFn = function (curTime) { if (typeof _self._intervalFn != 'undefined') { if (curTime % _self._interval == 0) { _self._intervalFn(curTime); } } } //运行 ProgressBar.prototype.run = function () { if (typeof _outerWidth == 'undefined') { _self.init(); } var evalRate = 10;//执行频率 var speed = _outerWidth / _self._time * evalRate; var width = 0; var curTime = 0; var interval = window.setInterval(function () { width = width + speed; //执行间隔回调 curTime += evalRate; _self._evalIntervalFn(curTime); if (width < _outerWidth) { _innerDiv.css('width', width); } else if(width>=_outerWidth){ _innerDiv.css('width', _outerWidth); //完成回调 if (typeof _self._completed != 'undefined') { _self._completed(); } clearInterval(interval); } }, evalRate); } ProgressBar._initialized = true; }}

 

转载于:https://www.cnblogs.com/JerryWang1991/p/3265545.html

你可能感兴趣的文章
源码解读Mybatis List列表In查询实现的注意事项
查看>>
POJ 2311 Cutting Game(二维SG+Multi-Nim)
查看>>
1978 Fibonacci数列 3
查看>>
1225 八数码难题
查看>>
C#控件的闪烁问题解决方法总结
查看>>
js 冒泡事件与解决冒泡事件
查看>>
2018-2019赛季多校联合新生训练赛第七场(2018/12/16)补题题解
查看>>
后台全选功能以及数据的提交方法
查看>>
Android 动画效果 及 自定义动画
查看>>
const与#define相比有什么不同?
查看>>
Eclipse4.7 SpringIDE插件的安装
查看>>
C#面向对象基础
查看>>
Jquery页面加载效果
查看>>
ios对new Date() 的兼容问题
查看>>
Spark发展现状与战线
查看>>
Charles常用设置
查看>>
filebeat
查看>>
如何在Bitmap中画图?(MFC)
查看>>
Windows 用来定位 DLL 的搜索路径
查看>>
常见的游戏设计技术
查看>>