layer是一款非常好用的插件,相信很多小伙伴都使用过,插件使用layer v3.1.1,文档地址:https://layui.gitee.io/v2/layer/。为了更合适光年模板,这里对插件做了一些调整,去除了一些图片,调整为字体图标,调整了颜色搭配。
使用弹窗
$('#example-1').click(function() { layer.alert('钱月英酬神还愿 冯子清误入桃园'); });
使用图标
为了更易识别,这里将图标的设置值改为:success
、error
、doubt
、lock
、cry
、smile
、warning
。
<p id="example-icon"> <button class="btn btn-primary" data-icon="success">正确</button> <button class="btn btn-danger" data-icon="error">错误</button> <button class="btn btn-yellow" data-icon="doubt">疑问</button> <button class="btn btn-secondary" data-icon="lock">锁定</button> <button class="btn btn-pink" data-icon="cry">哭脸</button> <button class="btn btn-success" data-icon="smile">笑脸</button> <button class="btn btn-warning" data-icon="warning">警告</button> </p> // 使用图标 $('#example-icon').find('.btn').click(function() { layer.alert('赠金扇冯旭得意 拜天地翠秀许婚', { icon: $(this).data('icon'), }) });
询问框
layer.confirm('游西湖林璋遇故 卖宝剑马云逢凶?', { btn: ['重要', '奇葩'] //按钮 }, function(){ layer.msg('的确很重要', {icon: 'success'}); }, function(){ layer.msg('也可以这样', { time: 20000, //20s后自动关闭 btn: ['明白了', '知道了'] }); });
提示层
layer.msg('马云大闹五柳园 汤彪仗义赠金帛'); layer.msg('诸葛亮智算华容 关云长义释曹操', function(){ //关闭后的操作 });
风格
这里新增了弹窗的样式皮肤:lyear-skin-primary
、lyear-skin-success
、lyear-skin-info
、lyear-skin-warning
、lyear-skin-danger
、lyear-skin-secondary
、lyear-skin-purple
、lyear-skin-pink
、lyear-skin-cyan
、lyear-skin-yellow
、lyear-skin-brown
、lyear-skin-dark
。
<div id="example-skin"> <button class="btn btn-primary" data-skin="lyear-skin-primary">主色</button> <button class="btn btn-success" data-skin="lyear-skin-success">成功</button> <button class="btn btn-info" data-skin="lyear-skin-info">信息</button> <button class="btn btn-warning" data-skin="lyear-skin-warning">警告</button> <button class="btn btn-danger" data-skin="lyear-skin-danger">错误</button> <button class="btn btn-secondary" data-skin="lyear-skin-secondary">灰色</button> <button class="btn btn-purple" data-skin="lyear-skin-purple">紫色</button> <button class="btn btn-pink" data-skin="lyear-skin-pink">粉红</button> <button class="btn btn-cyan" data-skin="lyear-skin-cyan">青色</button> <button class="btn btn-yellow" data-skin="lyear-skin-yellow">黄色</button> <button class="btn btn-brown" data-skin="lyear-skin-brown">棕色</button> <button class="btn btn-dark" data-skin="lyear-skin-dark">黑色</button> </div> // 风格 $('#example-skin').find('.btn').click(function() { layer.alert('真才子走笔成章 假斯文揉碎肚肠', { skin: $(this).data('skin'), }); });
捕获页
<div class="test-example-4"> <ul class="list-unstyled p-3 mb-0"> <li>第06回 姚夏封广陵风鉴 常万青南海朝山</li> <li>第07回 朱翰林代为月老 冯子清聘定月英</li> <li>第08回 魏家妇人前卖俏 花文芳黑夜偷情</li> </ul> </div> <button class="btn btn-default" id="example-4">捕获页</button> // 捕获页 $('#example-4').click(function() { layer.open({ type: 1, shade: false, title: false, //不显示标题 content: $('.test-example-4'), //捕获的元素,注意:最好该指定的元素要存放在body最外层,否则可能被其它的相对元素所影响 cancel: function(){ layer.msg('捕获就是从页面已经存在的元素上,包裹layer的结构', {time: 5000, icon: 'success'}); } }); });
页面层
$('#example-5').click(function() { layer.open({ type: 1, skin: 'layui-layer-rim', // 加上边框 area: ['420px', '240px'], // 宽高 content: '<div class="p-3">魏临川于中取利 花文芳将计就计</div>' }); });
tips层
$('#example-6').click(function() { layer.tips('Hi,我是tips', '#example-6'); });
iframe层
$('#example-7').click(function() { layer.open({ type: 2, title: 'Light Year Admin', shadeClose: true, shade: 0.5, area: ['380px', '90%'], content: 'http://lyear.itshubao.com' //iframe的url }); });
iframe窗
$('#example-8').click(function() { layer.open({ type: 2, title: false, closeBtn: 0, //不显示关闭按钮 shade: [0], area: ['340px', '215px'], offset: 'rb', //右下角弹出 time: 2000, //2秒后自动关闭 anim: 2, content: ['./data/card-reload.txt', 'no'], //iframe的url,no代表不显示滚动条 end: function(){ //此处用于演示 layer.open({ type: 2, title: '很多时候,我们想最大化看,比如像这个页面。', shadeClose: true, shade: false, maxmin: true, //开启最大化最小化按钮 area: ['893px', '600px'], content: '//lyear.itshubao.com/' }); } }); });
加载层
这里将gif动画改为 css3
动画,风格仍然保留0-2。
$('#example-loading').find('.btn').click(function() { var index = layer.load($(this).data('effect'), { shade: false }); // 第一个参数为风格,支持0-2 setTimeout(function(){ layer.close(index) }, 3000); });
loading层
$('#example-9').click(function() { var index = layer.load(0, { shade: [0.1, '#000'] }); // 0.1透明度的白色背景 setTimeout(function(){ layer.close(index) }, 3000); });
小tips
$('#example-10').click(function() { layer.tips('我是另外一个tips,只不过我长得跟之前那位稍有些不一样。', '#example-10', { tips: [1, '#33cabb'], time: 4000 }); });
prompt层
$('#example-11').click(function() { layer.prompt({title: '输入任何口令,并确认', formType: 1}, function(pass, index){ layer.close(index); layer.prompt({title: '随便写点啥,并确认', formType: 2}, function(text, index){ layer.close(index); layer.msg('演示完毕!您的口令:'+ pass +'<br>您最后写下了:'+text); }); }); });
相册层
$('#example-13').click(function() { var json = { "status": 1, "msg": "", "title": "JSON请求的相册", "id": 8, "start": 0, "data": [{ "alt": "花", "pid": 109, "src": "//libs.itshubao.com/pic/small_007.jpg", "thumb": "" }, { "alt": "油菜花", "pid": 110, "src": "//libs.itshubao.com/pic/medium_003.jpg", "thumb": "" }, { "alt": "粉红", "pid": 111, "src": "images/gallery/1.jpg", "thumb": "" }, { "alt": "牵牛花", "pid": 112, "src": "//libs.itshubao.com/pic/big_005.jpg", "thumb": "" }, { "alt": "大娃", "pid": 113, "src": "images/users/avatar-1.png", "thumb": "" }] }; layer.photos({ photos: json // 格式见API文档手册页 , anim: 5 // 0-6的选择,指定弹出图片动画类型,默认随机 }); });
信息框
模板信息框是白色背景的,你也可以用 bg-*
来增加信息框背景样式。
<div id="example-notice"> <button class="btn btn-default">默认</button> <button class="btn btn-primary" data-bg="bg-primary">主色</button> <button class="btn btn-success" data-bg="bg-success">成功</button> <button class="btn btn-info" data-bg="bg-info">信息</button> <button class="btn btn-warning" data-bg="bg-warning">警告</button> <button class="btn btn-danger" data-bg="bg-danger">错误</button> <button class="btn btn-secondary" data-bg="bg-secondary">灰色</button> <button class="btn btn-purple" data-bg="bg-purple">紫色</button> <button class="btn btn-pink" data-bg="bg-pink">粉红</button> <button class="btn btn-cyan" data-bg="bg-cyan">青色</button> <button class="btn btn-yellow" data-bg="bg-yellow">黄色</button> <button class="btn btn-brown" data-bg="bg-brown">棕色</button> <button class="btn btn-dark" data-bg="bg-dark">黑色</button> </div> // 信息框 $('#example-notice').find('.btn').click(function() { layer.msg('不开心。。。', { icon: 'cry', skin: $(this).data('bg') }); });
自定义页面层
layer.open({ type: 1, title: false, closeBtn: 0, shadeClose: true, skin: 'bg-success', content: '<div class="p-3"><h6>采桑子·时光只解催人老</h6>时光只解催人老,不信多情,长恨离亭,泪滴春衫酒易醒。<br>梧桐昨夜西风急,淡月胧明,好梦频惊,何处高楼雁一声?</div>' });
tips层位置
$('#example-top').click(function() { layer.tips('上', $(this), { tips: [1, '#000'] }); }); $('#example-right').click(function() { layer.tips('默认就是向右的', $(this)); }); $('#example-bottom').click(function() { layer.tips('下', $(this), { tips: 3 }); }); $('#example-left').click(function() { layer.tips('在很久以前……', $(this), { tips: [4, '#33cabb'], time: 300000 }); }); $('#example-more').click(function() { layer.tips('不会销毁之前的', $(this), {tipsMore: true}); });
弹出位置
$('#example-position').find('.btn').click(function() { var type = $(this).data('position'), text = $(this).text(); layer.open({ type: 1 ,offset: $(this).data('position') //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset ,id: 'LAY_demo'+type //防止重复弹出 ,content: ''+ text +'' ,btn: '关闭全部' ,btnAlign: 'c' ,shade: 0 ,yes: function(){ layer.closeAll(); } }); });