| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | Namespace.register("U.UF.IMG");/*** 图片预加载方法** @param  {string}  需要加载的图片地址* @param  {function}  预加载回调函数* @param  {function}  加载成功回调* @param  {function}  错误处理回调* @return  {element}  图片元素*/U.UF.IMG.imgReady = function (url, URD, ULD, UE) {    var _UW,    _UH,    _UNW, //image对象的width属性    _UNH, //image对象的height属性    _UIMG = new Image(); //image对象    _UOR = function () { //预加载        _UIMG = _UIMG || this;        _UNW = _UIMG.width;        _UNH = _UIMG.height; //获取加载图片的长宽        if ((_UNW !== _UW || _UNH !== _UH) || _UNH !== 0) {            if (URD) { URD.call(_UIMG) };            _UOR.end = true;        }    };    U.selectEl(_UIMG).addAttrArray({ "src": url,        "onload": function () { //成功加载回调            setTimeout(function () {                if (!_UOR.end) { _UOR() };                 if (_UIMG) { _UIMG.onload = _UIMG.onerror = null };                if (_UIMG && ULD) { ULD.call(_UIMG) };                _UIMG = null;            }, 0);        },        "onerror": function () { //错误图片处理            if (U.UF.C.IsNetwork()) {                if (UE) { UE.call(_UIMG) };            }        }    });    if (_UIMG) { //说明图片还在加载中        _UOR(); //执行预加载处理        if (_UIMG.complete == true) { //判断是否已经成功加载过了 缓存图片处理            _UIMG.onload(); return;        }    }    if (!_UOR.end) { //添加进入图片大小加载事件        U.UF.IMG.imgReady._UL.push(_UOR);        if (U.UF.IMG.imgReady._UIT == null) {            U.UF.IMG.imgReady._UIT = setInterval(U.UF.IMG.imgReady._URT, 40); //每40毫秒进入        }    }    return _UIMG;}U.UF.IMG.imgReady._UIT; //计时器初始化U.UF.IMG.imgReady._UL = []; //需要预加载的图片集//去除预加载计时U.UF.IMG.imgReady._US = function () {    clearInterval(U.UF.IMG.imgReady._UIT);    U.UF.IMG.imgReady._UIT = null;};//计时加载逐个加载处理U.UF.IMG.imgReady._URT = function () {    for (var i = 0; i < U.UF.IMG.imgReady._UL.length; i++) {        U.UF.IMG.imgReady._UL[i].end ? U.UF.IMG.imgReady._UL.splice(i--, 1) : U.UF.IMG.imgReady._UL[i]();    }    if (!U.UF.IMG.imgReady._UL.length) { U.UF.IMG.imgReady._US() };}
 |