layer 彈出層組件

用于實(shí)現(xiàn)網(wǎng)頁(yè)中的各種彈出層交互,如 Alert/Confirm/Message/Tips/Page/Iframe/Loading/Prompt/Tab/photo 應(yīng)有盡有

文檔手冊(cè) 功能示例 快速上手 layer 移動(dòng)版
立即運(yùn)行
下載 layer 組件 當(dāng)前版本:,下載數(shù):loading…
彈層之術(shù)
在線調(diào)試 擴(kuò)展皮膚

layer 是一款歷年來(lái)備受青睞的 Web 彈出層組件,具備全方位的解決方案,面向各個(gè)水平段的開(kāi)發(fā)人員,您的頁(yè)面會(huì)輕松地?fù)碛胸S富友好的操作體驗(yàn)。

在與同類(lèi)組件的比較中,layer 會(huì)更能被開(kāi)發(fā)者所選擇。這不僅是憑「臉」取勝,而是它盡可能地在以更少的代碼展現(xiàn)更強(qiáng)健的功能,且格外注重性能的提升、易用和實(shí)用性,layer 甚至還兼容了包括 IE6 在內(nèi)的所有主流瀏覽器。其數(shù)量可觀的基礎(chǔ)屬性和方法,使得您可以自定義太多您需要的風(fēng)格,每一種彈層模式各具特色,廣受歡迎。當(dāng)然,這種「王婆賣(mài)瓜」的陳述聽(tīng)起來(lái)總是有點(diǎn)難受,因此你需要進(jìn)一步了解她是否真的如你所愿。 layer 被瀏覽次數(shù): loading…

layer 采用 MIT 開(kāi)源許可證,是一個(gè)永久無(wú)償?shù)墓嫘皂?xiàng)目。因著數(shù)年的堅(jiān)持維護(hù),已被運(yùn)用在不計(jì)其數(shù) Web 平臺(tái),已然成為網(wǎng)頁(yè)彈出層的首先交互方案,幾乎所處可見(jiàn),其中還不乏眾多知名大型網(wǎng)站。layer 已被國(guó)內(nèi)乃至全世界至少數(shù)十萬(wàn)的開(kāi)發(fā)者所使用過(guò),并且它仍在與 Layui 開(kāi)源項(xiàng)目一并穩(wěn)步發(fā)展。

先睹為快
特別說(shuō)明:
事件需自己綁定,以下只展現(xiàn)調(diào)用代碼。
 

//初體驗(yàn)

layer.alert('內(nèi)容')

//擴(kuò)展皮膚

layer.alert('內(nèi)容', { icon: 1, skin: 'layer-ext-demo' //見(jiàn):擴(kuò)展說(shuō)明 })

//詢(xún)問(wèn)框

layer.confirm('您是如何看待前端開(kāi)發(fā)?', { btn: ['重要','奇葩'] //按鈕 }, function(){ layer.msg('的確很重要', {icon: 1}); }, function(){ layer.msg('也可以這樣', { time: 20000, //20s后自動(dòng)關(guān)閉 btn: ['明白了', '知道了'] }); });

//提示層

layer.msg('一段提示信息');

//墨綠深藍(lán)風(fēng)

layer.alert('墨綠風(fēng)格,點(diǎn)擊確認(rèn)看深藍(lán)', { skin: 'layui-layer-molv' //樣式類(lèi)名 ,closeBtn: 0 }, function(){ layer.alert('偶吧深藍(lán)style', { skin: 'layui-layer-lan' ,closeBtn: 0 ,anim: 4 //動(dòng)畫(huà)類(lèi)型 }); });

//捕獲頁(yè)

layer.open({ type: 1, shade: false, title: false, //不顯示標(biāo)題 content: $('.layer_notice'), //捕獲的元素,注意:最好該指定的元素要存放在body最外層,否則可能被其它的相對(duì)元素所影響 cancel: function(){ layer.msg('捕獲就是從頁(yè)面已經(jīng)存在的元素上,包裹layer的結(jié)構(gòu)', {time: 5000, icon:6}); } });

//頁(yè)面層

layer.open({ type: 1, skin: 'layui-layer-rim', //加上邊框 area: ['420px', '240px'], //寬高 content: 'html內(nèi)容' });

//自定頁(yè)

layer.open({ type: 1, skin: 'layui-layer-demo', //樣式類(lèi)名 closeBtn: 0, //不顯示關(guān)閉按鈕 anim: 2, shadeClose: true, //開(kāi)啟遮罩關(guān)閉 content: '內(nèi)容' });

//tips層

layer.tips('Hi,我是tips', '吸附元素選擇器,如#id');

//iframe 層

layer.open({ type: 2, title: 'layer mobile頁(yè)', shadeClose: true, shade: 0.8, area: ['380px', '90%'], content: 'mobile/' //iframe的url });

//iframe 層

layer.open({ type: 2, title: '很多時(shí)候,我們想最大化看,比如像這個(gè)頁(yè)面。', shadeClose: true, shade: false, maxmin: true, //開(kāi)啟最大化最小化按鈕 area: ['893px', '600px'], content: 'https://www.baidu.com/' });

//加載層

var index = layer.load(0, {shade: false}); //0代表加載的風(fēng)格,支持0-2

//loading層

var index = layer.load(1, { shade: [0.1,'#fff'] //0.1透明度的白色背景 });

//小tips

layer.tips('我是另外一個(gè)tips,只不過(guò)我長(zhǎng)得跟之前那位稍有些不一樣。', '吸附元素選擇器', { tips: [1, '#3595CC'], time: 4000 });

//prompt層

layer.prompt({title: '輸入任何口令,并確認(rèn)', formType: 1}, function(pass, index){ layer.close(index); layer.prompt({title: '隨便寫(xiě)點(diǎn)啥,并確認(rèn)', formType: 2}, function(text, index){ layer.close(index); layer.msg('演示完畢!您的口令:'+ pass +'<br>您最后寫(xiě)下了:'+text); }); });

//tab層

layer.tab({ area: ['600px', '300px'], tab: [{ title: 'TAB1', content: '內(nèi)容1' }, { title: 'TAB2', content: '內(nèi)容2' }, { title: 'TAB3', content: '內(nèi)容3' }] });

//相冊(cè)層

$.getJSON('test/photos.json?v='+new Date, function(json){ layer.photos({ photos: json //格式見(jiàn)API文檔手冊(cè)頁(yè) ,anim: 5 //0-6的選擇,指定彈出圖片動(dòng)畫(huà)類(lèi)型,默認(rèn)隨機(jī) }); });

//顯示自動(dòng)關(guān)閉倒計(jì)秒數(shù)

layer.alert('在標(biāo)題欄顯示自動(dòng)關(guān)閉倒計(jì)秒數(shù)', { time: 5*1000 ,success: function(layero, index){ var timeNum = this.time/1000, setText = function(start){ layer.title((start ? timeNum : --timeNum) + ' 秒后關(guān)閉', index); }; setText(!0); this.timer = setInterval(setText, 1000); if(timeNum <= 0) clearInterval(this.timer); } ,end: function(){ clearInterval(this.timer); } });

再試牛刀

//信息框-例1

layer.alert('見(jiàn)到你真的很高興', {icon: 6});

//信息框-例2

layer.msg('你確定你很帥么?', { time: 0 //不自動(dòng)關(guān)閉 ,btn: ['必須啊', '丑到爆'] ,yes: function(index){ layer.close(index); layer.msg('雅蠛蝶 O.o', { icon: 6 ,btn: ['嗷','嗷','嗷'] }); } });

//信息框-例3

layer.msg('這是最常用的吧');

//信息框-例4

layer.msg('不開(kāi)心。。', {icon: 5});

//信息框-例5

layer.msg('玩命賣(mài)萌中', function(){ //關(guān)閉后的操作 });

//頁(yè)面層-自定義

layer.open({ type: 1, title: false, closeBtn: 0, shadeClose: true, skin: 'yourclass', content: '自定義HTML內(nèi)容' });

//頁(yè)面層-圖片

layer.open({ type: 1, title: false, closeBtn: 0, area: ['auto'], skin: 'layui-layer-nobg', //沒(méi)有背景色 shadeClose: true, content: $('#tong') });

//iframe層-父子操作

layer.open({ type: 2, area: ['700px', '450px'], fixed: false, //不固定 maxmin: true, content: 'test/iframe.html' });

//iframe層-多媒體

layer.open({ type: 2, title: false, area: ['630px', '360px'], shade: 0.8, closeBtn: 0, shadeClose: true, content: '//player.youku.com/embed/XMzI1NjQyMzkwNA==' }); layer.msg('點(diǎn)擊任意處關(guān)閉');

//iframe層-禁滾動(dòng)條

layer.open({ type: 2, area: ['360px', '500px'], skin: 'layui-layer-rim', //加上邊框 content: ['mobile/', 'no'] });

//加載層-默認(rèn)風(fēng)格

layer.load(); //此處演示關(guān)閉 setTimeout(function(){ layer.closeAll('loading'); }, 2000);

//加載層-風(fēng)格2

layer.load(1); //此處演示關(guān)閉 setTimeout(function(){ layer.closeAll('loading'); }, 2000);

//加載層-風(fēng)格3

layer.load(2); //此處演示關(guān)閉 setTimeout(function(){ layer.closeAll('loading'); }, 2000);

//加載層-風(fēng)格4

layer.msg('加載中', { icon: 16 ,shade: 0.01 });

//打醬油

layer.msg('尼瑪,打個(gè)醬油', {icon: 4});

//tips層-上

layer.tips('上', '#id或者.class', { tips: [1, '#0FA6D8'] //還可配置顏色 });

//tips層-右

layer.tips('默認(rèn)就是向右的', '#id或者.class');

//tips層-下

layer.tips('下', '#id或者.class', { tips: 3 });

//tips層-左

layer.tips('左邊么么噠', '#id或者.class', { tips: [4, '#78BA32'] });

//tips層-不銷(xiāo)毀之前的

layer.tips('不銷(xiāo)毀之前的', '#id或者.class', { tipsMore: true });

//默認(rèn)prompt

layer.prompt(function(val, index){ layer.msg('得到了'+val); layer.close(index); });

//屏蔽瀏覽器滾動(dòng)條

layer.open({ content: '瀏覽器滾動(dòng)條已鎖', scrollbar: false });

//彈出即全屏

var index = layer.open({ type: 2, content: 'https://fly.layui.com/jump/alyhot/', area: ['320px', '195px'], maxmin: true }); layer.full(index);

//正上方

layer.msg('靈活運(yùn)用offset', { offset: 't', anim: 6 }); //更多例子 layer.msg('Hi');

倘若 layer 于你有益,歡迎:

小額贊賞
美妙之旅
事實(shí)上 layer 提供的豐富的基礎(chǔ)屬性,已經(jīng)足夠讓你的彈出框/層變得千變?nèi)f化,請(qǐng)恕我們無(wú)法為您逐一演示。如果您仍覺(jué)得文檔和代碼有不當(dāng)之處,迫切地希望您能反饋,你可以通各種方式進(jìn)入 layer 的圈子,許多和你一樣的小伙伴將會(huì)和你一起,經(jīng)歷這段美妙的開(kāi)發(fā)旅程。