mirror of https://github.com/layui/layer
1.8.5
parent
80d25f9d7e
commit
2c75e96c9e
|
@ -0,0 +1,20 @@
|
|||
|
||||
|
||||
【1.8.5】
|
||||
* 新增对title样式的自定义控制
|
||||
* 修复layer.prompt多行文本,设置默认值无效的bug
|
||||
|
||||
【1.8.4】
|
||||
* 新增浏览器窗口尺寸改变时的自适应定位
|
||||
* 新增属性shift,用于配置动画弹出(需要注意的是,之前的layer.shift()方法将在layer1.9遗弃,用shift属性取代)
|
||||
* 新增方法layer.title(name, index); 用于动态改变层的标题。
|
||||
* 修改弹出层默认初始坐标为垂直左右居中。
|
||||
* 开放多个tips,可通过配置tips: {more: true}开启。
|
||||
* 进一步完善tips的智能定位。
|
||||
* 放弃layer.ready方法,用jQuery的ready取代。
|
||||
* 进一步优化内部代码
|
||||
|
||||
== 拓展模块 ==
|
||||
* layer.prompt支持给表单传入默认值,如layer.prompt({val:'默认'}); 新增yes回调函数第二个参数为索引、第三个参数为表单元素。
|
||||
* 相册层新增tab回调函数,用于切换图片时进行相关操作
|
||||
* 相册层内部代码优化。
|
20
README.md
20
README.md
|
@ -22,26 +22,6 @@ layer是一款口碑非常不错的web弹层组件,她具备全方位的解决
|
|||
|
||||
事实上我们无法获取到更多案例,所以如果您有大型项目也在使用layer,您可以联系作者,以便在layer官网展现,也为您的品牌推广尽一些绵薄之力。
|
||||
|
||||
## 日志
|
||||
【1.8.5更新日志】
|
||||
* 新增对title样式的自定义控制
|
||||
* 修复layer.prompt多行文本,设置默认值无效的bug
|
||||
|
||||
【1.8.4更新日志】
|
||||
* 新增浏览器窗口尺寸改变时的自适应定位
|
||||
* 新增属性shift,用于配置动画弹出(需要注意的是,之前的layer.shift()方法将在layer1.9遗弃,用shift属性取代)
|
||||
* 新增方法layer.title(name, index); 用于动态改变层的标题。
|
||||
* 修改弹出层默认初始坐标为垂直左右居中。
|
||||
* 开放多个tips,可通过配置tips: {more: true}开启。
|
||||
* 进一步完善tips的智能定位。
|
||||
* 放弃layer.ready方法,用jQuery的ready取代。
|
||||
* 进一步优化内部代码
|
||||
|
||||
== 拓展模块 ==
|
||||
* layer.prompt支持给表单传入默认值,如layer.prompt({val:'默认'}); 新增yes回调函数第二个参数为索引、第三个参数为表单元素。
|
||||
* 相册层新增tab回调函数,用于切换图片时进行相关操作
|
||||
* 相册层内部代码优化。
|
||||
|
||||
|
||||
## 备注
|
||||
[官网](http://sentsin.com/jquery/layer/)、[更新日志](https://github.com/sentsin/layer/blob/master/Update%20Notes.txt)、[Say交流](http://say.sentsin.com/home-48.html)
|
|
@ -0,0 +1,365 @@
|
|||
/**
|
||||
|
||||
@Name: layer拓展类,依赖于layer
|
||||
@Date: 2014.08.13
|
||||
@Author: 贤心
|
||||
@Versions:1.8.5-ext
|
||||
@Api:http://sentsin.com/jquery/layer
|
||||
@Desc: 本拓展会持续更新
|
||||
|
||||
*/
|
||||
|
||||
layer.use('skin/layer.ext.css', function(){
|
||||
layer.ext && layer.ext();
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
|
||||
系统prompt
|
||||
|
||||
*/
|
||||
|
||||
layer.prompt = function(parme, yes, no){
|
||||
var log = {}, parme = parme || {}, conf = {
|
||||
area: ['auto', 'auto'],
|
||||
offset: [parme.top || '', ''],
|
||||
title: parme.title || '信息',
|
||||
dialog: {
|
||||
btns: 2,
|
||||
type: -1,
|
||||
msg: '<input type="'+ function(){
|
||||
if(parme.type === 1){ //密码
|
||||
return 'password';
|
||||
} else if(parme.type === 2) {
|
||||
return 'file';
|
||||
} else {
|
||||
return 'text';
|
||||
}
|
||||
}() +'" class="xubox_prompt xubox_form" id="xubox_prompt" value="'+ (parme.val || '') +'" />',
|
||||
yes: function(index){
|
||||
var val = log.prompt.val();
|
||||
if(val === ''){
|
||||
log.prompt.focus();
|
||||
} else if(val.replace(/\s/g, '').length > (parme.length || 1000)) {
|
||||
layer.tips('最多输入'+ (parme.length || 1000) +'个字数', '#xubox_prompt', 2);
|
||||
} else {
|
||||
yes && yes(val, index, log.prompt);
|
||||
}
|
||||
|
||||
}, no: no
|
||||
}, success: function(){
|
||||
log.prompt = $('#xubox_prompt');
|
||||
log.prompt.focus();
|
||||
}
|
||||
};
|
||||
if(parme.type === 3){
|
||||
conf.dialog.msg = '<textarea class="xubox_prompt xubox_form xubox_formArea" id="xubox_prompt">'+ (parme.val || '') +'</textarea>'
|
||||
}
|
||||
return $.layer(conf);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
|
||||
tab层
|
||||
|
||||
*/
|
||||
|
||||
layer.tab = function(parme){
|
||||
var log = {}, parme = parme || {}, data = parme.data || [], conf = {
|
||||
type: 1,
|
||||
border: [0],
|
||||
area: ['auto', 'auto'],
|
||||
bgcolor: '',
|
||||
title: false,
|
||||
shade : parme.shade,
|
||||
offset: parme.offset,
|
||||
move: '.xubox_tabmove',
|
||||
closeBtn: false,
|
||||
page: {html: '<div class="xubox_tab" style="'+ function(){
|
||||
parme.area = parme.area || [];
|
||||
return 'width:'+ (parme.area[0] || '500px') +'; height:'+ (parme.area[1] || '300px') +'">';
|
||||
}()
|
||||
+'<span class="xubox_tabmove"></span>'
|
||||
+'<div class="xubox_tabtit">'
|
||||
+function(){
|
||||
var len = data.length, ii = 1, str = '';
|
||||
if(len > 0){
|
||||
str = '<span class="xubox_tabnow">'+ data[0].title +'</span>';
|
||||
for(; ii < len; ii++){
|
||||
str += '<span>'+ data[ii].title +'</span>';
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}() +'</div>'
|
||||
+'<ul class="xubox_tab_main">'+ function(){
|
||||
var len = data.length, ii = 1, str = '';
|
||||
if(len > 0){
|
||||
str = '<li class="xubox_tabli xubox_tab_layer">'+ (data[0].content || 'no content') +'</li>';
|
||||
for(; ii < len; ii++){
|
||||
str += '<li class="xubox_tabli">'+ (data[ii].content || 'no content') +'</li>';
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}() +'</ul>'
|
||||
+'<span class="xubox_tabclose" title="关闭">X</span>'
|
||||
+'</div>'
|
||||
}, success: function(layerE){
|
||||
//切换事件
|
||||
var btn = $('.xubox_tabtit').children(), main = $('.xubox_tab_main').children(), close = $('.xubox_tabclose');
|
||||
btn.on('click', function(){
|
||||
var othis = $(this), index = othis.index();
|
||||
othis.addClass('xubox_tabnow').siblings().removeClass('xubox_tabnow');
|
||||
main.eq(index).show().siblings().hide();
|
||||
});
|
||||
//关闭层
|
||||
close.on('click', function(){
|
||||
layer.close(layerE.attr('times'));
|
||||
});
|
||||
}
|
||||
};
|
||||
return $.layer(conf);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
相册层
|
||||
|
||||
*/
|
||||
|
||||
|
||||
layer.photos = function(options){
|
||||
options = options || {};
|
||||
var log = {
|
||||
imgIndex: 1,
|
||||
end: null,
|
||||
html: $('html')
|
||||
}, win = $(window), json = options.json, page = options.page;
|
||||
|
||||
if(json){
|
||||
var data = json.data;
|
||||
if(json.status === 1){
|
||||
log.imgLen = data.length;
|
||||
if(data.length > 0){
|
||||
log.thissrc = data[json.start].src;
|
||||
log.pid = data[json.start].pid;
|
||||
log.imgsname = (json.title || '');
|
||||
log.name = data[json.start].name;
|
||||
log.imgIndex = json.start + 1;
|
||||
} else {
|
||||
layer.msg('没有任何图片', 2, 8);
|
||||
return;
|
||||
}
|
||||
|
||||
} else {
|
||||
layer.msg('未请求到数据', 2, 8);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
var imgs = $(page.parent).find('img'), nowimg = imgs.eq(page.start);
|
||||
log.thissrc = (nowimg.attr('layer-img') || nowimg.attr('src'));
|
||||
log.pid = nowimg.attr('pid');
|
||||
log.imgLen = imgs.length;
|
||||
log.imgsname = (page.title || '');
|
||||
log.name = nowimg.attr('alt');
|
||||
log.imgIndex = page.start + 1;
|
||||
}
|
||||
|
||||
var conf = {
|
||||
type: 1,
|
||||
border: [0],
|
||||
area: [(options.html ? 915 : 600) + 'px', 'auto'],
|
||||
title: false,
|
||||
shade: [0.9, '#000', true],
|
||||
shadeClose: true,
|
||||
offset: ['25px', ''],
|
||||
bgcolor: '',
|
||||
page: {
|
||||
html: '<div class="xubox_bigimg"><img src="'+ log.thissrc +'" alt="'+ (log.name || '') +'" layer-pid="'+ (log.pid || '') +'"><div class="xubox_imgsee">'+ function(){
|
||||
if(log.imgLen > 1){
|
||||
return '<a href="" class="xubox_iconext xubox_prev"></a><a href="" class="xubox_iconext xubox_next"></a>'
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}() +'<div class="xubox_imgbar"><span class="xubox_imgtit"><a href="javascript:;">'+ log.imgsname +' </a><em>'+ log.imgIndex +'/'+ log.imgLen +'</em></span></div></div></div>'+ function(){
|
||||
if(options.html){
|
||||
return '<div class="xubox_intro">'+ options.html +'</div>';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}()
|
||||
}, success: function(layero){
|
||||
log.bigimg = layero.find('.xubox_bigimg');
|
||||
log.imgsee = log.bigimg.find('.xubox_imgsee');
|
||||
log.imgbar = log.imgsee.find('.xubox_imgbar');
|
||||
log.imgtit = log.imgbar.find('.xubox_imgtit');
|
||||
log.layero = layero;
|
||||
|
||||
var img = log.imgs = log.bigimg.find('img');
|
||||
|
||||
clearTimeout(log.timerr);
|
||||
log.timerr = setTimeout(function(){
|
||||
$('html').css('overflow', 'hidden').attr('layer-full', log.index);
|
||||
}, 10);
|
||||
|
||||
img.load(function(){
|
||||
log.imgarea = [img.outerWidth(), img.outerHeight()];
|
||||
log.resize(layero);
|
||||
});
|
||||
|
||||
log.event();
|
||||
|
||||
}, end: function(){
|
||||
layer.closeAll();
|
||||
log.end = true;
|
||||
}
|
||||
};
|
||||
|
||||
//一些动作
|
||||
log.event = function(){
|
||||
log.bigimg.hover(function(){
|
||||
log.imgsee.show();
|
||||
}, function(){
|
||||
log.imgsee.hide();
|
||||
});
|
||||
|
||||
//上一张
|
||||
conf.imgprev = function(){
|
||||
log.imgIndex--;
|
||||
if(log.imgIndex < 1){
|
||||
log.imgIndex = log.imgLen;
|
||||
}
|
||||
log.tabimg();
|
||||
};
|
||||
log.bigimg.find('.xubox_prev').on('click', function(event){
|
||||
event.preventDefault();
|
||||
conf.imgprev();
|
||||
});
|
||||
|
||||
//下一张
|
||||
conf.imgnext = function(){
|
||||
log.imgIndex++;
|
||||
if(log.imgIndex > log.imgLen){
|
||||
log.imgIndex = 1;
|
||||
}
|
||||
log.tabimg()
|
||||
};
|
||||
log.bigimg.find('.xubox_next').on('click', function(event){
|
||||
event.preventDefault();
|
||||
conf.imgnext();
|
||||
});
|
||||
|
||||
//方向键
|
||||
$(document).keyup(function(event){
|
||||
if(!log.end){
|
||||
var code = event.keyCode;
|
||||
event.preventDefault();
|
||||
if(code === 37){
|
||||
conf.imgprev();
|
||||
} else if(code === 39) {
|
||||
conf.imgnext();
|
||||
} else if(code === 27) {
|
||||
layer.close(log.index);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
log.tabimg = function(){
|
||||
var timer, src, pid, name;
|
||||
log.imgs.removeAttr('style');
|
||||
if(json){
|
||||
var nowdata = data[log.imgIndex - 1];
|
||||
src = nowdata.src;
|
||||
pid = nowdata.pid;
|
||||
name = nowdata.name;
|
||||
} else {
|
||||
var thisimg = imgs.eq(log.imgIndex - 1);
|
||||
src = thisimg.attr('layer-img') || thisimg.attr('src');
|
||||
pid = thisimg.attr('layer-pid') || '';
|
||||
name = thisimg.attr('alt') || '';
|
||||
}
|
||||
log.imgs.attr({
|
||||
src: src,
|
||||
'layer-pid': pid,
|
||||
alt: name
|
||||
});
|
||||
log.imgtit.find('em').text(log.imgIndex + '/' + log.imgLen);
|
||||
log.imgsee.show();
|
||||
options.tab && options.tab({pid: pid, name: name});
|
||||
}
|
||||
};
|
||||
|
||||
//相册响应式
|
||||
log.resize = function(layero){
|
||||
var relog = {}, wa = [win.width(), win.height()];
|
||||
relog.limit = wa[0] - wa[0]/wa[1]*(60*wa[0]/wa[1]);
|
||||
if(relog.limit < 600){
|
||||
relog.limit = 600;
|
||||
}
|
||||
var area = [relog.limit, wa[1] > 400 ? wa[1] - 50 : 400];
|
||||
area[0] = options.html ? area[0] : (area[0] - 300);
|
||||
layer.area(log.index, {
|
||||
width: area[0] + (options.html ? 15 : 0),
|
||||
height: area[1]
|
||||
});
|
||||
relog.flwidth = area[0] - (options.html ? 300 : 0);
|
||||
if(log.imgarea[0] > relog.flwidth){
|
||||
log.imgs.css({width: relog.flwidth});
|
||||
} else {
|
||||
log.imgs.css({width: log.imgarea[0]});
|
||||
}
|
||||
if(log.imgs.outerHeight() < area[1]){
|
||||
log.imgs.css({top: (area[1] - log.imgs.outerHeight())/2});
|
||||
}
|
||||
log.imgs.css({visibility: 'visible'});
|
||||
log.bigimg.css({width: relog.flwidth, height: area[1], 'background-color': options.bgcolor});
|
||||
if(options.html){
|
||||
layero.find('.xubox_intro').css({height: area[1]});
|
||||
}
|
||||
relog = null;
|
||||
wa = null;
|
||||
area = null;
|
||||
};
|
||||
|
||||
win.on('resize', function(){
|
||||
if(log.end){
|
||||
return;
|
||||
}
|
||||
if(log.timer){
|
||||
clearTimeout(log.timer);
|
||||
}
|
||||
log.timer = setTimeout(function(){
|
||||
log.resize(log.layero);
|
||||
}, 200);
|
||||
});
|
||||
|
||||
log.index = $.layer(conf);
|
||||
return log.index;
|
||||
};
|
||||
|
||||
//获取页面元素包含的所有图片,快捷调用
|
||||
layer.photosPage = function(options){
|
||||
var log = {};
|
||||
log.run = function(index){
|
||||
layer.photos({
|
||||
html: options.html,
|
||||
success: options.success,
|
||||
page: {
|
||||
title: options.title,
|
||||
id: options.id,
|
||||
start: index,
|
||||
parent: options.parent
|
||||
}
|
||||
});
|
||||
};
|
||||
options = options || {};
|
||||
$(options.parent).find('img').each(function(index){
|
||||
$(this).on('click', function(){
|
||||
log.run(index);
|
||||
});
|
||||
});
|
||||
};
|
File diff suppressed because one or more lines are too long
18
layer.js
18
layer.js
|
@ -12,13 +12,12 @@
|
|||
;!function(window, undefined){
|
||||
"use strict";
|
||||
|
||||
var path = '', //组件存放目录,为空表示自动获取(不用填写host,相对站点的根目录即可)。
|
||||
var path = 'http://res.sentsin.com/lay/lib/layer/', //组件存放目录,为空表示自动获取(不用填写host,相对站点的根目录即可)。
|
||||
|
||||
$, win, ready = {
|
||||
host: 'http://' + location.host,
|
||||
getPath: function(){
|
||||
var js = document.scripts, jsPath = js[js.length - 1].src;
|
||||
return path ? ready.host + path : jsPath.substring(0, jsPath.lastIndexOf("/") + 1);
|
||||
return path ? path : jsPath.substring(0, jsPath.lastIndexOf("/") + 1);
|
||||
},
|
||||
|
||||
//五种原始层模式
|
||||
|
@ -28,7 +27,7 @@ $, win, ready = {
|
|||
//默认内置方法。
|
||||
window.layer = {
|
||||
v: '1.8.5',
|
||||
ie6: !-[1,] && !window.XMLHttpRequest,
|
||||
ie6: !!window.ActiveXObject&&!window.XMLHttpRequest,
|
||||
index: 0,
|
||||
path: ready.getPath(),
|
||||
|
||||
|
@ -158,7 +157,7 @@ Class.pt.config = {
|
|||
shade: [0.3, '#000'],
|
||||
fix: true,
|
||||
move: '.xubox_title',
|
||||
title: '信息',
|
||||
title: '信息',
|
||||
offset: ['', '50%'],
|
||||
area: ['310px', 'auto'],
|
||||
closeBtn: [0, true],
|
||||
|
@ -167,7 +166,7 @@ Class.pt.config = {
|
|||
border: [6, 0.3, '#000'],
|
||||
zIndex: 19891014,
|
||||
maxWidth: 400,
|
||||
dialog: {btns: 1, btn: ['确定','取消'], type : 8, msg: '', yes: function(index){layer.close(index);}, no: function(index){layer.close(index);}},
|
||||
dialog: {btns: 1, btn: ['确定','取消'], type : 8, msg: '', yes: function(index){layer.close(index);}, no: function(index){layer.close(index);}},
|
||||
page: {dom: '#xulayer', html: '', url: ''},
|
||||
iframe: {src: 'http://sentsin.com', scrolling: 'auto'},
|
||||
loading: {type: 0},
|
||||
|
@ -957,11 +956,10 @@ ready.run = function(){
|
|||
(new Image()).src = layer.path + 'skin/default/xubox_ico0.png';
|
||||
};
|
||||
|
||||
var require = '../../init/jquery'; //若采用seajs,需正确配置jquery的相对路径。未用可无视此处。
|
||||
if(window.seajs){
|
||||
define([require], function(require, exports, module){
|
||||
if("function" === typeof define){
|
||||
define(function(){
|
||||
ready.run();
|
||||
module.exports = layer;
|
||||
return layer;
|
||||
});
|
||||
}else{
|
||||
ready.run();
|
||||
|
|
File diff suppressed because one or more lines are too long
14
m/README.md
14
m/README.md
|
@ -1,14 +0,0 @@
|
|||
|
||||
## layer mobole
|
||||
layer mobile是为移动设备(手机、平板等webkit内核浏览器/webview)量身定做的弹层支撑,采用Native JavaScript编写,完全独立于PC版的layer,您需要按照场景选择使用。
|
||||
|
||||
[文档与演示](http://sentsin.com/layui/layer/)
|
||||
|
||||
1. 无需依赖任何库,只加载layer.m.js即可
|
||||
2. 小巧玲珑,性能卓越、柔情似水…
|
||||
3. 具备无以伦比的自适应功能
|
||||
4. 灵活的皮肤自定义支撑,充分确保弹层风格多样化
|
||||
5. 丰富、科学的接口,让弹弹弹层无所不能
|
||||
|
||||
## 备注
|
||||
[官网](http://sentsin.com/layui/layer/)、[有问必答](http://say.sentsin.com/home-48.html)
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************
|
||||
/****************************************
|
||||
|
||||
@Name:layer v1.0 弹层组件移动版
|
||||
@Name:layer v1.1 弹层组件移动版
|
||||
@Author:贤心
|
||||
@Date:2014-08-24
|
||||
@Copyright:Sentsin Xu(贤心)
|
||||
|
@ -27,9 +27,11 @@ document.head.appendChild((function(){
|
|||
}()));
|
||||
|
||||
var config = {
|
||||
type: 0,
|
||||
shade: true,
|
||||
shadeClose: true,
|
||||
fixed: true
|
||||
fixed: true,
|
||||
anim: true
|
||||
};
|
||||
|
||||
var ready = {
|
||||
|
@ -60,7 +62,7 @@ Layer.prototype.view = function(){
|
|||
var title = (function(){
|
||||
var titype = typeof config.title === 'object';
|
||||
return config.title
|
||||
? '<h3 style="'+ (titype ? config.title[1] : '') +'">'+ (titype ? config.title[0] : config.title) +'</h3><button class="layermend">×</button>'
|
||||
? '<h3 style="'+ (titype ? config.title[1] : '') +'">'+ (titype ? config.title[0] : config.title) +'</h3><button class="layermend">x</button>'
|
||||
: '';
|
||||
}());
|
||||
|
||||
|
@ -82,19 +84,23 @@ Layer.prototype.view = function(){
|
|||
config.style += ' top:'+ ( doc.body.scrollTop + config.top) + 'px';
|
||||
}
|
||||
|
||||
if(config.type === 2){
|
||||
config.content = '<i></i><i class="laymloadtwo"></i><i></i><div>' + (config.content||'') + '</div>';
|
||||
}
|
||||
|
||||
layerbox.innerHTML = (config.shade ? '<div class="laymshade"></div>' : '')
|
||||
+'<div class="layermmain" '+ (!config.fixed ? 'style="position:static;"' : '') +'>'
|
||||
+'<section>'
|
||||
+'<div class="layermchild" '+ ( config.style ? 'style="'+config.style+'"' : '' ) +'>'
|
||||
+'<div class="layermchild '+ (config.anim ? 'layermanim' : '') +'" ' + ( config.style ? 'style="'+config.style+'"' : '' ) +'>'
|
||||
+ title
|
||||
+'<div class="layermcont">'+ (config.content||' ') +'</div>'
|
||||
+'<div class="layermcont">'+ config.content +'</div>'
|
||||
+ button
|
||||
+'</div>'
|
||||
+'</section>'
|
||||
+'</div>';
|
||||
|
||||
if(!config.type){
|
||||
var dialogs = doc[claname](classs[0]+'0'), dialen = dialogs.length;
|
||||
if(!config.type || config.type === 2){
|
||||
var dialogs = doc[claname](classs[0] + config.type), dialen = dialogs.length;
|
||||
if(dialen >= 1){
|
||||
layer.close(dialogs[0].getAttribute('index'))
|
||||
}
|
||||
|
@ -104,7 +110,7 @@ Layer.prototype.view = function(){
|
|||
|
||||
setTimeout(function(){
|
||||
try{
|
||||
doc[byid](that.id).classList.add('layermshow');
|
||||
doc[byid](that.id).className = doc[byid](that.id).className + ' layermshow';
|
||||
}catch(e){
|
||||
return;
|
||||
}
|
||||
|
@ -159,7 +165,7 @@ Layer.prototype.action = function(config){
|
|||
};
|
||||
|
||||
var layer = {
|
||||
v: '1.0',
|
||||
v: '1.1',
|
||||
index: index,
|
||||
|
||||
//核心方法
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
/* layer-v1.0 弹层移动版 By 贤心 2014-08-24 http://sentsin.com/layui/layer */
|
||||
;!function(a){"use strict";function k(a){var b=this;b.config=h.extend(a),b.view()}var g,h,i,j,l,b=document.scripts[document.scripts.length-1].src.match(/[\s\S]*\//)[0],c=document,d="createElement",e="getElementById",f="getElementsByClassName";document.head.appendChild(function(){var a=c[d]("link");return a.href=b+"need/layer.css",a.type="text/css",a.rel="styleSheet",a.id="layermcss",a}()),g={shade:!0,shadeClose:!0,fixed:!0},h={extend:function(a){var c,b=JSON.parse(JSON.stringify(g));for(c in a)b[c]=a[c];return b},timer:{}},i=0,j=["layermbox"],k.prototype.view=function(){var h,k,m,n,a=this,b=a.config,g=c[d]("div");a.id=g.id=j[0]+i,g.setAttribute("class",j[0]+" "+j[0]+(b.type||0)),g.setAttribute("index",i),h=function(){var a="object"==typeof b.title;return b.title?'<h3 style="'+(a?b.title[1]:"")+'">'+(a?b.title[0]:b.title)+'</h3><button class="layermend">×</button>':""}(),k=function(){var c,a=(b.btn||[]).length;return 0!==a&&b.btn?(c='<span type="1">'+b.btn[0]+"</span>",2===a&&(c='<span type="0">'+b.btn[1]+"</span>"+c),'<div class="layermbtn">'+c+"</div>"):""}(),b.fixed||(b.top=b.hasOwnProperty("top")?b.top:100,b.style=b.style||"",b.style+=" top:"+(c.body.scrollTop+b.top)+"px"),g.innerHTML=(b.shade?'<div class="laymshade"></div>':"")+'<div class="layermmain" '+(b.fixed?"":'style="position:static;"')+">"+"<section>"+'<div class="layermchild" '+(b.style?'style="'+b.style+'"':"")+">"+h+'<div class="layermcont">'+(b.content||" ")+"</div>"+k+"</div>"+"</section>"+"</div>",b.type||(m=c[f](j[0]+"0"),n=m.length,n>=1&&l.close(m[0].getAttribute("index"))),document.body.appendChild(g),setTimeout(function(){try{c[e](a.id).classList.add("layermshow")}catch(d){return}b.success&&b.success(c[e](a.id))},1),a.index=i++,a.action(b)},k.prototype.action=function(a){var d,b=this;a.time&&(h.timer[b.index]=setTimeout(function(){l.close(b.index)},1e3*a.time)),a.title&&(c[e](b.id)[f]("layermend")[0].onclick=function(){a.cancel&&a.cancel(),l.close(b.index,a.end)}),a.btn&&(c[e](b.id)[f]("layermbtn")[0].onclick=function(c){var d=c.target.getAttribute("type");0==d?(a.no&&a.no(),l.close(b.index,a.end)):a.yes?a.yes(b.index):l.close(b.index,a.end)}),a.shade&&a.shadeClose&&(d=c[e](b.id)[f]("laymshade")[0],d.onclick=function(){l.close(b.index,a.end)},d.ontouchmove=function(){l.close(b.index,a.end)})},l={v:"1.0",index:i,open:function(a){var b=new k(a||{});return b.index},close:function(a,b){var d=c[e](j[0]+a);d&&(d.innerHTML="",c.body.removeChild(d),clearTimeout(h.timer[a]),delete h.timer[a],b&&b())},closeAll:function(){var b,c,a=document.getElementsByClassName(j[0]);for(b=0,c=a.length;c>b;b++)l.close(a[b].getAttribute("index"))}},"function"==typeof define?define(function(){return l}):a.layer=l}(window);
|
||||
/*! layer mobile-v1.0 弹层组件移动版 2014-09-10 License LGPL http://sentsin.com/layui/layer/ By 贤心 */
|
||||
;!function(a){"use strict";function b(a){var b=this;b.config=i.extend(a),b.view()}var c=document.scripts[document.scripts.length-1].src.match(/[\s\S]*\//)[0],d=document,e="createElement",f="getElementById",g="getElementsByClassName";document.head.appendChild(function(){var a=d[e]("link");return a.href=c+"need/layer.css",a.type="text/css",a.rel="styleSheet",a.id="layermcss",a}());var h={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:!0},i={extend:function(a){var b=JSON.parse(JSON.stringify(h));for(var c in a)b[c]=a[c];return b},timer:{}},j=0,k=["layermbox"];b.prototype.view=function(){var a=this,b=a.config,c=d[e]("div");a.id=c.id=k[0]+j,c.setAttribute("class",k[0]+" "+k[0]+(b.type||0)),c.setAttribute("index",j);var h=function(){var a="object"==typeof b.title;return b.title?'<h3 style="'+(a?b.title[1]:"")+'">'+(a?b.title[0]:b.title)+'</h3><button class="layermend">x</button>':""}(),i=function(){var a,c=(b.btn||[]).length;return 0!==c&&b.btn?(a='<span type="1">'+b.btn[0]+"</span>",2===c&&(a='<span type="0">'+b.btn[1]+"</span>"+a),'<div class="layermbtn">'+a+"</div>"):""}();if(b.fixed||(b.top=b.hasOwnProperty("top")?b.top:100,b.style=b.style||"",b.style+=" top:"+(d.body.scrollTop+b.top)+"px"),2===b.type&&(b.content='<i></i><i class="laymloadtwo"></i><i></i><div>'+(b.content||"")+"</div>"),c.innerHTML=(b.shade?'<div class="laymshade"></div>':"")+'<div class="layermmain" '+(b.fixed?"":'style="position:static;"')+'><section><div class="layermchild '+(b.anim?"layermanim":"")+'" '+(b.style?'style="'+b.style+'"':"")+">"+h+'<div class="layermcont">'+b.content+"</div>"+i+"</div></section></div>",!b.type||2===b.type){var m=d[g](k[0]+b.type),n=m.length;n>=1&&l.close(m[0].getAttribute("index"))}document.body.appendChild(c),setTimeout(function(){try{d[f](a.id).className=d[f](a.id).className+" layermshow"}catch(c){return}b.success&&b.success(d[f](a.id))},1),a.index=j++,a.action(b)},b.prototype.action=function(a){var b=this;if(a.time&&(i.timer[b.index]=setTimeout(function(){l.close(b.index)},1e3*a.time)),a.title&&(d[f](b.id)[g]("layermend")[0].onclick=function(){a.cancel&&a.cancel(),l.close(b.index,a.end)}),a.btn&&(d[f](b.id)[g]("layermbtn")[0].onclick=function(c){var d=c.target.getAttribute("type");0==d?(a.no&&a.no(),l.close(b.index,a.end)):a.yes?a.yes(b.index):l.close(b.index,a.end)}),a.shade&&a.shadeClose){var c=d[f](b.id)[g]("laymshade")[0];c.onclick=function(){l.close(b.index,a.end)},c.ontouchmove=function(){l.close(b.index,a.end)}}};var l={v:"1.1",index:j,open:function(a){var c=new b(a||{});return c.index},close:function(a,b){var c=d[f](k[0]+a);c&&(c.innerHTML="",d.body.removeChild(c),clearTimeout(i.timer[a]),delete i.timer[a],b&&b())},closeAll:function(){for(var a=document.getElementsByClassName(k[0]),b=0,c=a.length;c>b;b++)l.close(a[b].getAttribute("index"))}};"function"==typeof define?define(function(){return l}):a.layer=l}(window);
|
File diff suppressed because one or more lines are too long
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<title>layer-更懂你的web弹窗解决方案</title>
|
||||
<script src="http://res.xiami.net/pc/lay/lib.js"></script>
|
||||
<script src="../layer.min.js"></script>
|
||||
<script src="../src/layer.min.js"></script>
|
||||
|
||||
<style>
|
||||
html{background-color:#E3E3E3; font-size:14px; color:#000; font-family:'微软雅黑'}
|
Loading…
Reference in New Issue