layer.js
来源:互联网 发布:金星网络商学院 编辑:程序博客网 时间:2024/05/20 16:43
/*! @Name:layer v2.1 弹层组件 @Author:贤心 @Site:http://layer.layui.com @License:LGPL */;!function(window, undefined){"use strict";var $, win, ready = { getPath: function(){ var js = document.scripts, script = js[js.length - 1], jsPath = script.src; if(script.getAttribute('merge')) return; return jsPath.substring(0, jsPath.lastIndexOf("/") + 1); }(), //屏蔽Enter触发弹层 enter: function(e){ if(e.keyCode === 13) e.preventDefault(); }, config: {}, end: {}, btn: ['确定','取消'], //五种原始层模式 type: ['dialog', 'page', 'iframe', 'loading', 'tips']};//默认内置方法。var layer = { v: '2.1', ie6: !!window.ActiveXObject&&!window.XMLHttpRequest, index: 0, path: ready.getPath, config: function(options, fn){ var item = 0; options = options || {}; layer.cache = ready.config = $.extend(ready.config, options); layer.path = ready.config.path || layer.path; typeof options.extend === 'string' && (options.extend = [options.extend]); layer.use('skin/layer.css', (options.extend && options.extend.length > 0) ? (function loop(){ var ext = options.extend; layer.use(ext[ext[item] ? item : item-1], item < ext.length ? function(){ ++item; return loop; }() : fn); }()) : fn); return this; }, //载入配件 use: function(module, fn, readyMethod){ var i = 0, head = $('head')[0]; var module = module.replace(/\s/g, ''); var iscss = /\.css$/.test(module); var node = document.createElement(iscss ? 'link' : 'script'); var id = 'layui_layer_' + module.replace(/\.|\//g, ''); if(!layer.path) return; if(iscss){ node.rel = 'stylesheet'; } node[iscss ? 'href' : 'src'] = /^http:\/\//.test(module) ? module : layer.path + module; node.id = id; if(!$('#'+ id)[0]){ head.appendChild(node); } //轮询加载就绪 ;(function poll() { ;(iscss ? parseInt($('#'+id).css('width')) === 1989 : layer[readyMethod||id]) ? function(){ fn && fn(); try { iscss || head.removeChild(node); } catch(e){}; }() : setTimeout(poll, 100); }()); return this; }, ready: function(path, fn){ var type = typeof path === 'function'; if(type) fn = path; layer.config($.extend(ready.config, function(){ return type ? {} : {path: path}; }()), fn); return this; }, //各种快捷引用 alert: function(content, options, yes){ var type = typeof options === 'function'; if(type) yes = options; return layer.open($.extend({ content: content, yes: yes }, type ? {} : options)); }, confirm: function(content, options, yes, cancel){ var type = typeof options === 'function'; if(type){ cancel = yes; yes = options; } return layer.open($.extend({ content: content, btn: ready.btn, yes: yes, cancel: cancel }, type ? {} : options)); }, msg: function(content, options, end){ //最常用提示层 var type = typeof options === 'function', rskin = ready.config.skin; var skin = (rskin ? rskin + ' ' + rskin + '-msg' : '')||'layui-layer-msg'; var shift = doms.anim.length - 1; if(type) end = options; return layer.open($.extend({ content: content, time: 3000, shade: false, skin: skin, title: false, closeBtn: false, btn: false, end: end }, (type && !ready.config.skin) ? { skin: skin + ' layui-layer-hui', shift: shift } : function(){ options = options || {}; if(options.icon === -1 || options.icon === undefined && !ready.config.skin){ options.skin = skin + ' ' + (options.skin||'layui-layer-hui'); } return options; }())); }, load: function(icon, options){ return layer.open($.extend({ type: 3, icon: icon || 0, shade: 0.01 }, options)); }, tips: function(content, follow, options){ return layer.open($.extend({ type: 4, content: [content, follow], closeBtn: false, time: 3000, maxWidth: 210 }, options)); }};var Class = function(setings){ var that = this; that.index = ++layer.index; that.config = $.extend({}, that.config, ready.config, setings); that.creat();};Class.pt = Class.prototype;//缓存常用字符var doms = ['layui-layer', '.layui-layer-title', '.layui-layer-main', '.layui-layer-dialog', 'layui-layer-iframe', 'layui-layer-content', 'layui-layer-btn', 'layui-layer-close'];doms.anim = ['layui-anim', 'layui-anim-01', 'layui-anim-02', 'layui-anim-03', 'layui-anim-04', 'layui-anim-05', 'layui-anim-06'];//默认配置Class.pt.config = { type: 0, shade: 0.3, fix: true, move: doms[1], title: '信息', offset: 'auto', area: 'auto', closeBtn: 1, time: 0, //0表示不自动关闭 zIndex: 19891014, maxWidth: 360, shift: 0, icon: -1, scrollbar: true, //是否允许浏览器滚动条 tips: 2};//容器Class.pt.vessel = function(conType, callback){ var that = this, times = that.index, config = that.config; var zIndex = config.zIndex + times, titype = typeof config.title === 'object'; var ismax = config.maxmin && (config.type === 1 || config.type === 2); var titleHTML = (config.title ? '<div class="layui-layer-title" style="'+ (titype ? config.title[1] : '') +'">' + (titype ? config.title[0] : config.title) + '</div>' : ''); config.zIndex = zIndex; callback([ //遮罩 config.shade ? ('<div class="layui-layer-shade" id="layui-layer-shade'+ times +'" times="'+ times +'" style="'+ ('z-index:'+ (zIndex-1) +'; background-color:'+ (config.shade[1]||'#000') +'; opacity:'+ (config.shade[0]||config.shade) +'; filter:alpha(opacity='+ (config.shade[0]*100||config.shade*100) +');') +'"></div>') : '', //主体 '<div class="'+ doms[0] +' '+ (doms.anim[config.shift]||'') + (' layui-layer-'+ready.type[config.type]) + (((config.type == 0 || config.type == 2) && !config.shade) ? ' layui-layer-border' : '') + ' ' + (config.skin||'') +'" id="'+ doms[0] + times +'" type="'+ ready.type[config.type] +'" times="'+ times +'" showtime="'+ config.time +'" conType="'+ (conType ? 'object' : 'string') +'" style="z-index: '+ zIndex +'; width:'+ config.area[0] + ';height:' + config.area[1] + (config.fix ? '' : ';position:absolute;') +'">' + (conType && config.type != 2 ? '' : titleHTML) +'<div class="layui-layer-content'+ ((config.type == 0 && config.icon !== -1) ? ' layui-layer-padding' :'') + (config.type == 3 ? ' layui-layer-loading'+config.icon : '') +'">' + (config.type == 0 && config.icon !== -1 ? '<i class="layui-layer-ico layui-layer-ico'+ config.icon +'"></i>' : '') + (config.type == 1 && conType ? '' : (config.content||'')) +'</div>' + '<span class="layui-layer-setwin">'+ function(){ var closebtn = ismax ? '<a class="layui-layer-min" href="javascript:;"><cite></cite></a> <a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>' : ''; config.closeBtn && (closebtn += '<a class="layui-layer-ico '+ doms[7] +' '+ doms[7] + (config.title ? config.closeBtn : (config.type == 4 ? '1' : '2')) +'" href="javascript:;"></a>'); return closebtn; }() + '</span>' + (config.btn ? function(){ var button = ''; typeof config.btn === 'string' && (config.btn = [config.btn]); for(var i = 0, len = config.btn.length; i < len; i++){ button += '<a class="'+ doms[6] +''+ i +'">'+ config.btn[i] +'</a>' } return '<div class="'+ doms[6] +'">'+ button +'</div>' }() : '') +'</div>' ], titleHTML); return that;};//创建骨架Class.pt.creat = function(){ var that = this, config = that.config, times = that.index, nodeIndex; var content = config.content, conType = typeof content === 'object'; if(typeof config.area === 'string'){ config.area = config.area === 'auto' ? ['', ''] : [config.area, '']; } switch(config.type){ case 0: config.btn = ('btn' in config) ? config.btn : ready.btn[0]; layer.closeAll('dialog'); break; case 2: var content = config.content = conType ? config.content : [config.content||'http://layer.layui.com', 'auto']; config.content = '<iframe scrolling="'+ (config.content[1]||'auto') +'" allowtransparency="true" id=" '+ doms[4] +''+ times +'" name="'+ doms[4] +''+ times +'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="' + config.content[0] + '"></iframe>'; break; case 3: config.title = false; config.closeBtn = false; config.icon === -1 && (config.icon === 0); layer.closeAll('loading'); break; case 4: conType || (config.content = [config.content, 'body']); config.follow = config.content[1]; config.content = config.content[0] + '<i class="layui-layer-TipsG"></i>'; config.title = false; config.shade = false; config.fix = false; config.tips = typeof config.tips === 'object' ? config.tips : [config.tips, true]; config.tipsMore || layer.closeAll('tips'); break; } //建立容器 that.vessel(conType, function(html, titleHTML){ $('body').append(html[0]); conType ? function(){ (config.type == 2 || config.type == 4) ? function(){ $('body').append(html[1]); }() : function(){ if(!content.parents('.'+doms[0])[0]){ content.show().addClass('layui-layer-wrap').wrap(html[1]); $('#'+ doms[0] + times).find('.'+doms[5]).before(titleHTML); } }(); }() : $('body').append(html[1]); that.layero = $('#'+ doms[0] + times); config.scrollbar || doms.html.css('overflow', 'hidden').attr('layer-full', times); }).auto(times); config.type == 2 && layer.ie6 && that.layero.find('iframe').attr('src', content[0]); $(document).off('keydown', ready.enter).on('keydown', ready.enter); that.layero.on('keydown', function(e){ $(document).off('keydown', ready.enter); }); //坐标自适应浏览器窗口尺寸 config.type == 4 ? that.tips() : that.offset(); if(config.fix){ win.on('resize', function(){ that.offset(); (/^\d+%$/.test(config.area[0]) || /^\d+%$/.test(config.area[1])) && that.auto(times); config.type == 4 && that.tips(); }); } config.time <= 0 || setTimeout(function(){ layer.close(that.index) }, config.time); that.move().callback();};//自适应Class.pt.auto = function(index){ var that = this, config = that.config, layero = $('#'+ doms[0] + index); if(config.area[0] === '' && config.maxWidth > 0){ //为了修复IE7下一个让人难以理解的bug if(/MSIE 7/.test(navigator.userAgent) && config.btn){ layero.width(layero.innerWidth()); } layero.outerWidth() > config.maxWidth && layero.width(config.maxWidth); } var area = [layero.innerWidth(), layero.innerHeight()]; var titHeight = layero.find(doms[1]).outerHeight() || 0; var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0; function setHeight(elem){ elem = layero.find(elem); elem.height(area[1] - titHeight - btnHeight - 2*(parseFloat(elem.css('padding'))|0)); } switch(config.type){ case 2: setHeight('iframe'); break; default: if(config.area[1] === ''){ if(config.fix && area[1] >= win.height()){ area[1] = win.height(); setHeight('.'+doms[5]); } } else { setHeight('.'+doms[5]); } break; } return that;};//计算坐标Class.pt.offset = function(){ var that = this, config = that.config, layero = that.layero; var area = [layero.outerWidth(), layero.outerHeight()]; var type = typeof config.offset === 'object'; that.offsetTop = (win.height() - area[1])/2; that.offsetLeft = (win.width() - area[0])/2; if(type){ that.offsetTop = config.offset[0]; that.offsetLeft = config.offset[1]||that.offsetLeft; } else if(config.offset !== 'auto'){ that.offsetTop = config.offset; if(config.offset === 'rb'){ //右下角 that.offsetTop = win.height() - area[1]; that.offsetLeft = win.width() - area[0]; } } if(!config.fix){ that.offsetTop = /%$/.test(that.offsetTop) ? win.height()*parseFloat(that.offsetTop)/100 : parseFloat(that.offsetTop); that.offsetLeft = /%$/.test(that.offsetLeft) ? win.width()*parseFloat(that.offsetLeft)/100 : parseFloat(that.offsetLeft); that.offsetTop += win.scrollTop(); that.offsetLeft += win.scrollLeft(); } layero.css({top: that.offsetTop, left: that.offsetLeft});};//TipsClass.pt.tips = function(){ var that = this, config = that.config, layero = that.layero; var layArea = [layero.outerWidth(), layero.outerHeight()], follow = $(config.follow); if(!follow[0]) follow = $('body'); var goal = { width: follow.outerWidth(), height: follow.outerHeight(), top: follow.offset().top, left: follow.offset().left }, tipsG = layero.find('.layui-layer-TipsG'); var guide = config.tips[0]; config.tips[1] || tipsG.remove(); goal.autoLeft = function(){ if(goal.left + layArea[0] - win.width() > 0){ goal.tipLeft = goal.left + goal.width - layArea[0]; tipsG.css({right: 12, left: 'auto'}); } else { goal.tipLeft = goal.left; }; }; //辨别tips的方位 goal.where = [function(){ //上 goal.autoLeft(); goal.tipTop = goal.top - layArea[1] - 10; tipsG.removeClass('layui-layer-TipsB').addClass('layui-layer-TipsT').css('border-right-color', config.tips[1]); }, function(){ //右 goal.tipLeft = goal.left + goal.width + 10; goal.tipTop = goal.top; tipsG.removeClass('layui-layer-TipsL').addClass('layui-layer-TipsR').css('border-bottom-color', config.tips[1]); }, function(){ //下 goal.autoLeft(); goal.tipTop = goal.top + goal.height + 10; tipsG.removeClass('layui-layer-TipsT').addClass('layui-layer-TipsB').css('border-right-color', config.tips[1]); }, function(){ //左 goal.tipLeft = goal.left - layArea[0] - 10; goal.tipTop = goal.top; tipsG.removeClass('layui-layer-TipsR').addClass('layui-layer-TipsL').css('border-bottom-color', config.tips[1]); }]; goal.where[guide-1](); /* 8*2为小三角形占据的空间 */ if(guide === 1){ goal.top - (win.scrollTop() + layArea[1] + 8*2) < 0 && goal.where[2](); } else if(guide === 2){ win.width() - (goal.left + goal.width + layArea[0] + 8*2) > 0 || goal.where[3]() } else if(guide === 3){ (goal.top - win.scrollTop() + goal.height + layArea[1] + 8*2) - win.height() > 0 && goal.where[0](); } else if(guide === 4){ layArea[0] + 8*2 - goal.left > 0 && goal.where[1]() } layero.find('.'+doms[5]).css({ 'background-color': config.tips[1], 'padding-right': (config.closeBtn ? '30px' : '') }); layero.css({left: goal.tipLeft, top: goal.tipTop});}//拖拽层Class.pt.move = function(){ var that = this, config = that.config, conf = { setY: 0, moveLayer: function(){ var layero = conf.layero, mgleft = parseInt(layero.css('margin-left')); var lefts = parseInt(conf.move.css('left')); mgleft === 0 || (lefts = lefts - mgleft); if(layero.css('position') !== 'fixed'){ lefts = lefts - layero.parent().offset().left; conf.setY = 0; } layero.css({left: lefts, top: parseInt(conf.move.css('top')) - conf.setY}); } }; var movedom = that.layero.find(config.move); config.move && movedom.attr('move', 'ok'); movedom.css({cursor: config.move ? 'move' : 'auto'}); $(config.move).on('mousedown', function(M){ M.preventDefault(); if($(this).attr('move') === 'ok'){ conf.ismove = true; conf.layero = $(this).parents('.'+ doms[0]); var xx = conf.layero.offset().left, yy = conf.layero.offset().top, ww = conf.layero.outerWidth() - 6, hh = conf.layero.outerHeight() - 6; if(!$('#layui-layer-moves')[0]){ $('body').append('<div id="layui-layer-moves" class="layui-layer-moves" style="left:'+ xx +'px; top:'+ yy +'px; width:'+ ww +'px; height:'+ hh +'px; z-index:2147483584"></div>'); } conf.move = $('#layui-layer-moves'); config.moveType && conf.move.css({visibility: 'hidden'}); conf.moveX = M.pageX - conf.move.position().left; conf.moveY = M.pageY - conf.move.position().top; conf.layero.css('position') !== 'fixed' || (conf.setY = win.scrollTop()); } }); $(document).mousemove(function(M){ if(conf.ismove){ var offsetX = M.pageX - conf.moveX, offsetY = M.pageY - conf.moveY; M.preventDefault(); //控制元素不被拖出窗口外 if(!config.moveOut){ conf.setY = win.scrollTop(); var setRig = win.width() - conf.move.outerWidth(), setTop = conf.setY; offsetX < 0 && (offsetX = 0); offsetX > setRig && (offsetX = setRig); offsetY < setTop && (offsetY = setTop); offsetY > win.height() - conf.move.outerHeight() + conf.setY && (offsetY = win.height() - conf.move.outerHeight() + conf.setY); } conf.move.css({left: offsetX, top: offsetY}); config.moveType && conf.moveLayer(); offsetX = offsetY = setRig = setTop = null; } }).mouseup(function(){ try{ if(conf.ismove){ conf.moveLayer(); conf.move.remove(); config.moveEnd && config.moveEnd(); } conf.ismove = false; }catch(e){ conf.ismove = false; } }); return that;};Class.pt.callback = function(){ var that = this, layero = that.layero, config = that.config; that.openLayer(); if(config.success){ if(config.type == 2){ layero.find('iframe').on('load', function(){ config.success(layero, that.index); }); } else { config.success(layero, that.index); } } layer.ie6 && that.IE6(layero); //按钮 layero.find('.'+ doms[6]).children('a').on('click', function(){ var index = $(this).index(); config['btn'+(index+1)] && config['btn'+(index+1)](that.index, layero); if(index === 0){ config.yes ? config.yes(that.index, layero) : layer.close(that.index); } else if(index === 1){ cancel(); } else { config['btn'+(index+1)] || layer.close(that.index); } }); //取消 function cancel(){ var close = config.cancel && config.cancel(that.index); close === false || layer.close(that.index); } //右上角关闭回调 layero.find('.'+ doms[7]).on('click', cancel); //点遮罩关闭 if(config.shadeClose){ $('#layui-layer-shade'+ that.index).on('click', function(){ layer.close(that.index); }); } //最小化 layero.find('.layui-layer-min').on('click', function(){ layer.min(that.index, config); config.min && config.min(layero); }); //全屏/还原 layero.find('.layui-layer-max').on('click', function(){ if($(this).hasClass('layui-layer-maxmin')){ layer.restore(that.index); config.restore && config.restore(layero); } else { layer.full(that.index, config); config.full && config.full(layero); } }); config.end && (ready.end[that.index] = config.end);};//for ie6 恢复selectready.reselect = function(){ $.each($('select'), function(index , value){ var sthis = $(this); if(!sthis.parents('.'+doms[0])[0]){ (sthis.attr('layer') == 1 && $('.'+doms[0]).length < 1) && sthis.removeAttr('layer').show(); } sthis = null; });}; Class.pt.IE6 = function(layero){ var that = this, _ieTop = layero.offset().top; //ie6的固定与相对定位 function ie6Fix(){ layero.css({top : _ieTop + (that.config.fix ? win.scrollTop() : 0)}); }; ie6Fix(); win.scroll(ie6Fix); //隐藏select $('select').each(function(index , value){ var sthis = $(this); if(!sthis.parents('.'+doms[0])[0]){ sthis.css('display') === 'none' || sthis.attr({'layer' : '1'}).hide(); } sthis = null; });};//需依赖原型的对外方法Class.pt.openLayer = function(){ var that = this; //置顶当前窗口 layer.zIndex = that.config.zIndex; layer.setTop = function(layero){ var setZindex = function(){ layer.zIndex++; layero.css('z-index', layer.zIndex + 1); }; layer.zIndex = parseInt(layero[0].style.zIndex); layero.on('mousedown', setZindex); return layer.zIndex; };};ready.record = function(layero){ var area = [ layero.outerWidth(), layero.outerHeight(), layero.position().top, layero.position().left + parseFloat(layero.css('margin-left')) ]; layero.find('.layui-layer-max').addClass('layui-layer-maxmin'); layero.attr({area: area});};ready.rescollbar = function(index){ if(doms.html.attr('layer-full') == index){ if(doms.html[0].style.removeProperty){ doms.html[0].style.removeProperty('overflow'); } else { doms.html[0].style.removeAttribute('overflow'); } doms.html.removeAttr('layer-full'); }};/** 内置成员 */window.layer = layer;//获取子iframe的DOMlayer.getChildFrame = function(selector, index){ index = index || $('.'+doms[4]).attr('times'); return $('#'+ doms[0] + index).find('iframe').contents().find(selector); };//得到当前iframe层的索引,子iframe时使用layer.getFrameIndex = function(name){ return $('#'+ name).parents('.'+doms[4]).attr('times');};//iframe层自适应宽高layer.iframeAuto = function(index){ if(!index) return; var heg = layer.getChildFrame('html', index).outerHeight(); var layero = $('#'+ doms[0] + index); var titHeight = layero.find(doms[1]).outerHeight() || 0; var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0; layero.css({height: heg + titHeight + btnHeight}); layero.find('iframe').css({height: heg});};//重置iframe urllayer.iframeSrc = function(index, url){ $('#'+ doms[0] + index).find('iframe').attr('src', url);};//设定层的样式layer.style = function(index, options){ var layero = $('#'+ doms[0] + index), type = layero.attr('type'); var titHeight = layero.find(doms[1]).outerHeight() || 0; var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0; if(type === ready.type[1] || type === ready.type[2]){ layero.css(options); if(type === ready.type[2]){ layero.find('iframe').css({ height: parseFloat(options.height) - titHeight - btnHeight }); } }};//最小化layer.min = function(index, options){ var layero = $('#'+ doms[0] + index); var titHeight = layero.find(doms[1]).outerHeight() || 0; ready.record(layero); layer.style(index, {width: 180, height: titHeight, overflow: 'hidden'}); layero.find('.layui-layer-min').hide(); layero.attr('type') === 'page' && layero.find(doms[4]).hide(); ready.rescollbar(index);};//还原layer.restore = function(index){ var layero = $('#'+ doms[0] + index), area = layero.attr('area').split(','); var type = layero.attr('type'); layer.style(index, { width: parseFloat(area[0]), height: parseFloat(area[1]), top: parseFloat(area[2]), left: parseFloat(area[3]), overflow: 'visible' }); layero.find('.layui-layer-max').removeClass('layui-layer-maxmin'); layero.find('.layui-layer-min').show(); layero.attr('type') === 'page' && layero.find(doms[4]).show(); ready.rescollbar(index);};//全屏layer.full = function(index){ var layero = $('#'+ doms[0] + index), timer; ready.record(layero); if(!doms.html.attr('layer-full')){ doms.html.css('overflow','hidden').attr('layer-full', index); } clearTimeout(timer); timer = setTimeout(function(){ var isfix = layero.css('position') === 'fixed'; layer.style(index, { top: isfix ? 0 : win.scrollTop(), left: isfix ? 0 : win.scrollLeft(), width: win.width(), height: win.height() }); layero.find('.layui-layer-min').hide(); }, 100);};//改变titlelayer.title = function(name, index){ var title = $('#'+ doms[0] + (index||layer.index)).find(doms[1]); title.html(name);};//关闭layer总方法layer.close = function(index){ var layero = $('#'+ doms[0] + index), type = layero.attr('type'); if(!layero[0]) return; if(type === ready.type[1] && layero.attr('conType') === 'object'){ layero.children(':not(.'+ doms[5] +')').remove(); for(var i = 0; i < 2; i++){ layero.find('.layui-layer-wrap').unwrap().hide(); } } else { //低版本IE 回收 iframe if(type === ready.type[2]){ try { var iframe = $('#'+doms[4]+index)[0]; iframe.contentWindow.document.write(''); iframe.contentWindow.close(); layero.find('.'+doms[5])[0].removeChild(iframe); } catch(e){} } layero[0].innerHTML = ''; layero.remove(); } $('#layui-layer-moves, #layui-layer-shade' + index).remove(); layer.ie6 && ready.reselect(); ready.rescollbar(index); $(document).off('keydown', ready.enter); typeof ready.end[index] === 'function' && ready.end[index](); delete ready.end[index]; };//关闭所有层layer.closeAll = function(type){ $.each($('.'+doms[0]), function(){ var othis = $(this); var is = type ? (othis.attr('type') === type) : 1; is && layer.close(othis.attr('times')); is = null; });};//主入口ready.run = function(){ $ = jQuery; win = $(window); doms.html = $('html'); layer.open = function(deliver){ var o = new Class(deliver); return o.index; };};'function' === typeof define ? define(function(){ ready.run(); return layer;}) : function(){ ready.run(); layer.use('skin/layer.css');}();}(window);
0 0
- layer.js
- layer.js
- layer.js
- 使用layer.js注意事项
- layer.js源码
- js layer弹窗
- layer.js源码分析
- JS-layer.js基础参数
- layer js web弹窗、层
- loading加载和layer.js
- jquery layer(js组件)转向
- cocos2d-js获得其它Layer层对象
- js:推荐一下layer,生产力组件
- cocos2d - JS 逐帧动画 (Animation Layer)
- express框架layer.js源码解析
- layer.js之回调销毁对话框
- tp+layer.js的ajax例子
- layer.js弹出其他页面源代码
- PHP 自 5.2 到 5.6 中新增的功能详解
- c语言16进制输出
- 如何让div中的table居中
- html文件查看器2
- Lua封装将数字转换成万显示
- layer.js
- 递归求解细胞分裂问题
- 独立日记 2015年12月29日 day8 第一周总结
- Objective-c:集合类型遍历方法详解
- Bean Validation 介绍及最佳实践
- 如何在Swift中使用SELECTOR
- Linux Mint(系统更新)
- Linux技术——常用 linux 命令
- CSS之Flexbox布局