日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

layer之弹层组件文档 layui.layer(v.1.9.0之后)

發(fā)布時間:2023/12/3 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 layer之弹层组件文档 layui.layer(v.1.9.0之后) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?彈層組件文檔 - layui.layer

layer 至今仍作為 layui 的代表作,她的受眾廣泛并非偶然,而是這數(shù)年來的堅持、不棄的執(zhí)念,將那些不屑的眼光轉(zhuǎn)化為應(yīng)得的尊重,不斷完善和維護(hù)、不斷建設(shè)和提升社區(qū)服務(wù),在 Web 開發(fā)者的圈子里口口相傳,乃至于成為今天的 layui 最強(qiáng)勁的源動力。目前,layer已成為國內(nèi)最多人使用的 Web 彈層組件,GitHub?自然Stars5000+,官網(wǎng)累計下載量達(dá)50w+,大概有30萬不同規(guī)模的 Web 平臺使用過 layer。?

之所以列舉上面這些數(shù)字,并非是在夸夸其談,而是懂 layer 的人都知道,這是一種怎樣不易的沉淀。而由于 layer 在 layui 體系中的位置比較特殊,甚至讓很多人都誤以為 layui = layer ui,所以再次強(qiáng)調(diào) layer 只是作為 layui 的一個彈層模塊,由于其用戶基數(shù)較大,所以至今仍把她作為獨立組件來維護(hù)。不過請注意:無論是獨立的 layer,還是作為內(nèi)置模塊的 layer,文檔都以本頁為準(zhǔn)。 模塊加載名稱:layer,獨立版本:layer.layui.com

使用場景

由于layer可以獨立使用,也可以通過Layui模塊化使用。所以請按照你的實際需求來選擇。

場景用前準(zhǔn)備調(diào)用方式
1. 作為獨立組件使用如果你只是單獨想使用 layer,你可以去?layer?獨立版本官網(wǎng)下載組件包。你需要在你的頁面引入jQuery1.8以上的任意版本,并引入layer.js。通過script標(biāo)簽引入layer.js后,直接用即可。 參考:快速上手
2. layui 模塊化使用如果你使用的是 layui,那么你直接在官網(wǎng)下載 layui 框架即可,無需引入 jQuery 和 layer.js,但需要引入layui.css和layui.js通過layui.use('layer', callback)加載模塊
?

作為獨立組件使用 layerlayui.code

引入好layer.js后,直接用即可

<script src="layer.js"></script> <script> layer.msg('hello'); </script> ?

在 layui 中使用 layerlayui.code

layui.use('layer', function(){ var layer = layui.layer;layer.msg('hello'); });

除了上面有所不同,其它都完全一致。

基礎(chǔ)參數(shù)

我們提到的基礎(chǔ)參數(shù)主要指調(diào)用方法時用到的配置項,如:layer.open({content: ''})layer.msg('', {time: 3})等,其中的content和time即是基礎(chǔ)參數(shù),以鍵值形式存在,基礎(chǔ)參數(shù)可合理應(yīng)用于任何層類型中,您不需要所有都去配置,大多數(shù)都是可選的。而其中的layer.open、layer.msg就是內(nèi)置方法。注意,從2.3開始,無需通過layer.config來加載拓展模塊

?

type - 基本層類型

類型:Number,默認(rèn):0

layer提供了5種層類型。可傳入的值有:0(信息框,默認(rèn))1(頁面層)2(iframe層)3(加載層)4(tips層)。 若你采用layer.open({type: 1})方式調(diào)用,則type為必填項(信息框除外)

?

title - 標(biāo)題

類型:String/Array/Boolean,默認(rèn):'信息'

title支持三種類型的值,若你傳入的是普通的字符串,如title :'我是標(biāo)題',那么只會改變標(biāo)題文本;若你還需要自定義標(biāo)題區(qū)域樣式,那么你可以title: ['文本', 'font-size:18px;'],數(shù)組第二項可以寫任意css樣式;如果你不想顯示標(biāo)題欄,你可以title: false

?

content - 內(nèi)容

類型:String/DOM/Array,默認(rèn):''

content可傳入的值是靈活多變的,不僅可以傳入普通的html內(nèi)容,還可以指定DOM,更可以隨著type的不同而不同。譬如:

/!* 如果是頁面層 */ layer.open({ type: 1, content: '傳入任意的文本或html' //這里content是一個普通的String }); layer.open({ type: 1, content: $('#id') //這里content是一個DOM,注意:最好該元素要存放在body最外層,否則可能被其它的相對元素所影響 }); //Ajax獲取 $.post('url', {}, function(str){ layer.open({ type: 1, content: str //注意,如果str是object,那么需要字符拼接。 }); }); /!* 如果是iframe層 */ layer.open({ type: 2, content: 'http://sentsin.com' //這里content是一個URL,如果你不想讓iframe出現(xiàn)滾動條,你還可以content: ['http://sentsin.com', 'no'] }); /!* 如果是用layer.open執(zhí)行tips層 */ layer.open({ type: 4, content: ['內(nèi)容', '#id'] //數(shù)組第二項即吸附元素選擇器或者DOM });

?

skin - 樣式類名

類型:String,默認(rèn):''

skin不僅允許你傳入layer內(nèi)置的樣式class名,還可以傳入您自定義的class名。這是一個很好的切入點,意味著你可以借助skin輕松完成不同的風(fēng)格定制。目前l(fā)ayer內(nèi)置的skin有:layui-layer-lanlayui-layer-molv,未來我們還會選擇性地內(nèi)置更多,但更推薦您自己來定義。以下是一個自定義風(fēng)格的簡單例子

//單個使用 layer.open({ skin: 'demo-class' }); //全局使用。即所有彈出層都默認(rèn)采用,但是單個配置skin的優(yōu)先級更高 layer.config({ skin: 'demo-class' }) //CSS body .demo-class .layui-layer-title{background:#c00; color:#fff; border: none;} body .demo-class .layui-layer-btn{border-top:1px solid #E9E7E7} body .demo-class .layui-layer-btn a{background:#333;} body .demo-class .layui-layer-btn .layui-layer-btn1{background:#999;} … 加上body是為了保證優(yōu)先級。你可以借助Chrome調(diào)試工具,定義更多樣式控制層更多的區(qū)域。

你也可以去查看layer皮膚制作說明

?

area - 寬高

類型:String/Array,默認(rèn):'auto'

在默認(rèn)狀態(tài)下,layer是寬高都自適應(yīng)的,但當(dāng)你只想定義寬度時,你可以area: '500px',高度仍然是自適應(yīng)的。當(dāng)你寬高都要定義時,你可以area: ['500px', '300px']

?

offset - 坐標(biāo)

類型:String/Array,默認(rèn):垂直水平居中

offset默認(rèn)情況下不用設(shè)置。但如果你不想垂直水平居中,你還可以進(jìn)行以下賦值:

值備注
offset: 'auto'默認(rèn)坐標(biāo),即垂直水平居中
offset: '100px'只定義top坐標(biāo),水平保持居中
offset: ['100px', '50px']同時定義top、left坐標(biāo)
offset: 't'快捷設(shè)置頂部坐標(biāo)
offset: 'r'快捷設(shè)置右邊緣坐標(biāo)
offset: 'b'快捷設(shè)置底部坐標(biāo)
offset: 'l'快捷設(shè)置左邊緣坐標(biāo)
offset: 'lt'快捷設(shè)置左上角
offset: 'lb'快捷設(shè)置左下角
offset: 'rt'快捷設(shè)置右上角
offset: 'rb'快捷設(shè)置右下角

?

icon - 圖標(biāo)。信息框和加載層的私有參數(shù)

類型:Number,默認(rèn):-1(信息框)/0(加載層)

信息框默認(rèn)不顯示圖標(biāo)。當(dāng)你想顯示圖標(biāo)時,默認(rèn)皮膚可以傳入0-6如果是加載層,可以傳入0-2。如:

//eg1 layer.alert('酷斃了', {icon: 1}); //eg2 layer.msg('不開心。。', {icon: 5}); //eg3 layer.load(1); //風(fēng)格1的加載

?

btn - 按鈕

類型:String/Array,默認(rèn):'確認(rèn)'

信息框模式時,btn默認(rèn)是一個確認(rèn)按鈕,其它層類型則默認(rèn)不顯示,加載層和tips層則無效。當(dāng)您只想自定義一個按鈕時,你可以btn: '我知道了',當(dāng)你要定義兩個按鈕時,你可以btn: ['yes', 'no']。當(dāng)然,你也可以定義更多按鈕,比如:btn: ['按鈕1', '按鈕2', '按鈕3', …],按鈕1的回調(diào)是yes,而從按鈕2開始,則回調(diào)為btn2: function(){},以此類推。如:

//eg1 layer.confirm('納尼?', { btn: ['按鈕一', '按鈕二', '按鈕三'] //可以無限個按鈕 ,btn3: function(index, layero){ //按鈕【按鈕三】的回調(diào) } }, function(index, layero){ //按鈕【按鈕一】的回調(diào) }, function(index){ //按鈕【按鈕二】的回調(diào) });//eg2 layer.open({ content: 'test' ,btn: ['按鈕一', '按鈕二', '按鈕三'] ,yes: function(index, layero){ //按鈕【按鈕一】的回調(diào) } ,btn2: function(index, layero){ //按鈕【按鈕二】的回調(diào)//return false 開啟該代碼可禁止點擊該按鈕關(guān)閉 } ,btn3: function(index, layero){ //按鈕【按鈕三】的回調(diào)//return false 開啟該代碼可禁止點擊該按鈕關(guān)閉 } ,cancel: function(){ //右上角關(guān)閉回調(diào)//return false 開啟該代碼可禁止點擊該按鈕關(guān)閉 } });

?

btnAlign - 按鈕排列

類型:String,默認(rèn):r

你可以快捷定義按鈕的排列位置,btnAlign的默認(rèn)值為r,即右對齊。該參數(shù)可支持的賦值如下:

值備注
btnAlign: 'l'按鈕左對齊
btnAlign: 'c'按鈕居中對齊
btnAlign: 'r'按鈕右對齊。默認(rèn)值,不用設(shè)置

?

closeBtn - 關(guān)閉按鈕

類型:String/Boolean,默認(rèn):1

layer提供了兩種風(fēng)格的關(guān)閉按鈕,可通過配置1和2來展示,如果不顯示,則closeBtn: 0

?

shade - 遮罩

類型:String/Array/Boolean,默認(rèn):0.3

即彈層外區(qū)域。默認(rèn)是0.3透明度的黑色背景('#000')。如果你想定義別的顏色,可以shade: [0.8, '#393D49'];如果你不想顯示遮罩,可以shade: 0

?

shadeClose - 是否點擊遮罩關(guān)閉

類型:Boolean,默認(rèn):false

如果你的shade是存在的,那么你可以設(shè)定shadeClose來控制點擊彈層外區(qū)域關(guān)閉。

?

time - 自動關(guān)閉所需毫秒

類型:Number,默認(rèn):0

默認(rèn)不會自動關(guān)閉。當(dāng)你想自動關(guān)閉時,可以time: 5000,即代表5秒后自動關(guān)閉,注意單位是毫秒(1秒=1000毫秒)

?

id - 用于控制彈層唯一標(biāo)識

類型:String,默認(rèn):空字符

設(shè)置該值后,不管是什么類型的層,都只允許同時彈出一個。一般用于頁面層和iframe層模式

?

anim - 彈出動畫

類型:Number,默認(rèn):0

我們的出場動畫全部采用CSS3。這意味著除了ie6-9,其它所有瀏覽器都是支持的。目前anim可支持的動畫類型有0-6?如果不想顯示動畫,設(shè)置 anim: -1 即可。另外需要注意的是,3.0之前的版本用的是?shift?參數(shù)

值備注
anim: 0平滑放大。默認(rèn)
anim: 1從上掉落
anim: 2從最底部往上滑入
anim: 3從左滑入
anim: 4從左翻滾
anim: 5漸顯
anim: 6抖動

?

isOutAnim - 關(guān)閉動畫 (layer 3.0.3新增)

類型:Boolean,默認(rèn):true

默認(rèn)情況下,關(guān)閉層時會有一個過度動畫。如果你不想開啟,設(shè)置 isOutAnim: false 即可

?

maxmin - 最大最小化

類型:Boolean,默認(rèn):false

該參數(shù)值對type:1和type:2有效。默認(rèn)不顯示最大小化按鈕。需要顯示配置maxmin: true即可

?

fixed - 固定

類型:Boolean,默認(rèn):true

即鼠標(biāo)滾動時,層是否固定在可視區(qū)域。如果不想,設(shè)置fixed: false即可

?

resize - 是否允許拉伸

類型:Boolean,默認(rèn):true

默認(rèn)情況下,你可以在彈層右下角拖動來拉伸尺寸。如果對指定的彈層屏蔽該功能,設(shè)置 false即可。該參數(shù)對loading、tips層無效

?

resizing - 監(jiān)聽窗口拉伸動作

類型:Function,默認(rèn):null

當(dāng)你拖拽彈層右下角對窗體進(jìn)行尺寸調(diào)整時,如果你設(shè)定了該回調(diào),則會執(zhí)行。回調(diào)返回一個參數(shù):當(dāng)前層的DOM對象

resizing: function(layero){ console.log(layero); }

?

scrollbar - 是否允許瀏覽器出現(xiàn)滾動條

類型:Boolean,默認(rèn):true

默認(rèn)允許瀏覽器滾動,如果設(shè)定scrollbar: false,則屏蔽

?

maxWidth - 最大寬度

類型:Number,默認(rèn):360

請注意:只有當(dāng)area: 'auto'時,maxWidth的設(shè)定才有效。

?

maxHeight - 最大高度

類型:Number,默認(rèn):無

請注意:只有當(dāng)高度自適應(yīng)時,maxHeight的設(shè)定才有效。

?

zIndex - 層疊順序

類型:,默認(rèn):19891014(賢心生日 0.0)

一般用于解決和其它組件的層疊沖突。

?

move - 觸發(fā)拖動的元素

類型:String/DOM/Boolean,默認(rèn):'.layui-layer-title'

默認(rèn)是觸發(fā)標(biāo)題區(qū)域拖拽。如果你想單獨定義,指向元素的選擇器或者DOM即可。如move: '.mine-move'。你還配置設(shè)定move: false來禁止拖拽

?

moveOut - 是否允許拖拽到窗口外

類型:Boolean,默認(rèn):false

默認(rèn)只能在窗口內(nèi)拖拽,如果你想讓拖到窗外,那么設(shè)定moveOut: true即可

?

moveEnd - 拖動完畢后的回調(diào)方法

類型:Function,默認(rèn):null

默認(rèn)不會觸發(fā)moveEnd,如果你需要,設(shè)定moveEnd: function(layero){}即可。其中l(wèi)ayero為當(dāng)前層的DOM對象

?

tips - tips方向和顏色

類型:Number/Array,默認(rèn):2

tips層的私有參數(shù)。支持上右下左四個方向,通過1-4進(jìn)行方向設(shè)定。如tips: 3則表示在元素的下面出現(xiàn)。有時你還可能會定義一些顏色,可以設(shè)定tips: [1, '#c00']

?

tipsMore - 是否允許多個tips

類型:Boolean,默認(rèn):false

允許多個意味著不會銷毀之前的tips層。通過tipsMore: true開啟

?

success - 層彈出后的成功回調(diào)方法

類型:Function,默認(rèn):null

當(dāng)你需要在層創(chuàng)建完畢時即執(zhí)行一些語句,可以通過該回調(diào)。success會攜帶兩個參數(shù),分別是當(dāng)前層DOM當(dāng)前層索引。如:

layer.open({ content: '測試回調(diào)', success: function(layero, index){ console.log(layero, index); } });

?

yes - 確定按鈕回調(diào)方法

類型:Function,默認(rèn):null

該回調(diào)攜帶兩個參數(shù),分別為當(dāng)前層索引、當(dāng)前層DOM對象。如:

layer.open({ content: '測試回調(diào)', yes: function(index, layero){ //do something layer.close(index); //如果設(shè)定了yes回調(diào),需進(jìn)行手工關(guān)閉 } });

?

cancel - 右上角關(guān)閉按鈕觸發(fā)的回調(diào)

類型:Function,默認(rèn):null

該回調(diào)攜帶兩個參數(shù),分別為:當(dāng)前層索引參數(shù)(index)、當(dāng)前層的DOM對象(layero),默認(rèn)會自動觸發(fā)關(guān)閉。如果不想關(guān)閉,return false即可,如;

cancel: function(index, layero){ if(confirm('確定要關(guān)閉么')){ //只有當(dāng)點擊confirm框的確定時,該層才會關(guān)閉 layer.close(index) } return false; }

?

end - 層銷毀后觸發(fā)的回調(diào)

類型:Function,默認(rèn):null

無論是確認(rèn)還是取消,只要層被銷毀了,end都會執(zhí)行,不攜帶任何參數(shù)。

?

full/min/restore -分別代表最大化、最小化、還原 后觸發(fā)的回調(diào)

類型:Function,默認(rèn):null

攜帶一個參數(shù),即當(dāng)前層DOM

?

layer.config(options) - 初始化全局配置

這是一個可以重要也可以不重要的方法,重要的是,它的權(quán)利真的很大,尤其是在模塊化加載layer時,你會發(fā)現(xiàn)你必須要用到它。它不僅可以配置一些諸如路徑、加載的模塊,甚至還可以決定整個彈層的默認(rèn)參數(shù)。而說它不重要,是因為多數(shù)情況下,你會發(fā)現(xiàn),你似乎不是那么十分需要它。但你真的需要認(rèn)識一下這位伙計。

如果您是采用seajs或者requirejs加載layer,你需要執(zhí)行該方法來完成初始化的配置。比如:

layer.config({ path: '/res/layer/' //layer.js所在的目錄,可以是絕對目錄,也可以是相對目錄 }); //這樣的話,layer就會去加載一些它所需要的配件,比如css等。 //當(dāng)然,你即便不用seajs或者requirejs,也可以通過上述方式設(shè)定路徑

如果你是采用<script src="?a.js&layer.js">這種合并的方式引入layer,那么您需要在script標(biāo)簽上加一個自定義屬性merge="true"。如:

<script src="?a.js&layer.js" merge="true"> 這樣的話,layer就不會去自動去獲取路徑,但你需要通過以下方式來完成初始化的配置 layer.config({ path: '/res/layer/' //layer.js所在的目錄,可以是絕對目錄,也可以是相對目錄 });

注意:如果采用 layui 加載 layer,無需設(shè)置 path。所以前置工作都是自動完成。

但layer.config的作用遠(yuǎn)不止上述這樣。它還可以配置層默認(rèn)的基礎(chǔ)參數(shù),如:

layer.config({ anim: 1, //默認(rèn)動畫風(fēng)格 skin: 'layui-layer-molv' //默認(rèn)皮膚 … }); //除此之外,extend還允許你加載拓展的css皮膚,如: layer.config({ //如果是獨立版的layer,則將myskin存放在./skin目錄下 //如果是layui中使用layer,則將myskin存放在./css/modules/layer目錄下 extend: 'myskin/style.css' }); //具體的皮膚定制,可以參見:skin參數(shù)說明

?

layer.ready(callback) - 初始化就緒

由于我們的layer內(nèi)置了輕量級加載器,所以你根本不需要單獨引入css等文件。但是加載總是需要過程的。當(dāng)你在頁面一打開就要執(zhí)行彈層時,你最好是將彈層放入ready方法中,如:

//頁面一打開就執(zhí)行彈層 layer.ready(function(){ layer.msg('很高興一開場就見到你'); });

我是華麗的醬油:介紹完上面兩位引導(dǎo)者,接下來我們真正的主角閃亮登場了。此處應(yīng)有掌聲 ^,^

?

layer.open(options) - 原始核心方法

基本上是露臉率最高的方法,不管是使用哪種方式創(chuàng)建層,都是走layer.open(),創(chuàng)建任何類型的彈層都會返回一個當(dāng)前層索引,上述的options即是基礎(chǔ)參數(shù),另外,該文檔統(tǒng)一采用options作為基礎(chǔ)參數(shù)的標(biāo)識例子:

var index = layer.open({ content: 'test' }); //拿到的index是一個重要的憑據(jù),它是諸如layer.close(index)等方法的必傳參數(shù)。

噢,請等等,上面這位主角的介紹篇幅怎么看怎么都覺得跟它的地位不符,作者在文檔中只給了它如此可憐的一塊地??這是因為,它真的已經(jīng)大眾得不能再大眾了,你真正需要了解的,是它的內(nèi)部器官,即上面一大篇幅介紹的各種基礎(chǔ)參數(shù)。 ←_←

?

layer.alert(content, options, yes) - 普通信息框

它的彈出似乎顯得有些高調(diào),一般用于對用戶造成比較強(qiáng)烈的關(guān)注,類似系統(tǒng)alert,但卻比alert更靈便。它的參數(shù)是自動向左補齊的。通過第二個參數(shù),可以設(shè)定各種你所需要的基礎(chǔ)參數(shù),但如果你不需要的話,直接寫回調(diào)即可。如

//eg1 layer.alert('只想簡單的提示'); //eg2 layer.alert('加了個圖標(biāo)', {icon: 1}); //這時如果你也還想執(zhí)行yes回調(diào),可以放在第三個參數(shù)中。 //eg3 layer.alert('有了回調(diào)', function(index){ //do somethinglayer.close(index); });

?

layer.confirm(content, options, yes, cancel) - 詢問框

類似系統(tǒng)confirm,但卻遠(yuǎn)勝confirm,另外它不是和系統(tǒng)的confirm一樣阻塞你需要把交互的語句放在回調(diào)體中。同樣的,它的參數(shù)也是自動補齊的。

//eg1 layer.confirm('is not?', {icon: 3, title:'提示'}, function(index){ //do somethinglayer.close(index); }); //eg2 layer.confirm('is not?', function(index){ //do somethinglayer.close(index); });

?

layer.msg(content, options, end) - 提示框

我們在源碼中用了相對較大的篇幅來定制了這個msg,目的是想將其打造成露臉率最高的提示框。而事實上我的確也在大量地使用它。因為它簡單,而且足夠得自覺,它不僅占據(jù)很少的面積,而且默認(rèn)還會3秒后自動消失所有這一切都決定了我對msg的愛。因此我賦予了它許多可能在外形方面,它堅持簡陋的變化,在作用方面,它堅持零用戶操作。而且它的參數(shù)也是自動補齊的。

//eg1 layer.msg('只想弱弱提示'); //eg2 layer.msg('有表情地提示', {icon: 6}); //eg3 layer.msg('關(guān)閉后想做些什么', function(){ //do something }); //eg layer.msg('同上', { icon: 1, time: 2000 //2秒關(guān)閉(如果不配置,默認(rèn)是3秒) }, function(){ //do something });

?

layer.load(icon, options) - 加載層

type:3的深度定制。load并不需要你傳太多的參數(shù),但如果你不喜歡默認(rèn)的加載風(fēng)格,你還有選擇空間。icon支持傳入0-2如果是0,無需傳。另外特別注意一點:load默認(rèn)是不會自動關(guān)閉的,因為你一般會在ajax回調(diào)體中關(guān)閉它。

//eg1 var index = layer.load(); //eg2 var index = layer.load(1); //換了種風(fēng)格 //eg3 var index = layer.load(2, {time: 10*1000}); //又換了種風(fēng)格,并且設(shè)定最長等待10秒 //關(guān)閉 layer.close(index);

?

layer.tips(content, follow, options) - tips層

type:4的深度定制。也是我本人比較喜歡的一個層類型,因為它擁有和msg一樣的低調(diào)和自覺,而且會智能定位,即靈活地判斷它應(yīng)該出現(xiàn)在哪邊。默認(rèn)是在元素右邊彈出

//eg1 layer.tips('只想提示地精準(zhǔn)些', '#id'); //eg 2 $('#id').on('click', function(){ var that = this; layer.tips('只想提示地精準(zhǔn)些', that); //在元素的事件回調(diào)體中,follow直接賦予this即可 }); //eg 3 layer.tips('在上面', '#id', { tips: 1 });

關(guān)于它似乎沒有太多介紹的必要,唯一讓你疑惑的,可能就是這個index了吧。事實上它非常容易得到。

?

layer.close(index) - 關(guān)閉特定層

//當(dāng)你想關(guān)閉當(dāng)前頁的某個層時 var index = layer.open(); var index = layer.alert(); var index = layer.load(); var index = layer.tips(); //正如你看到的,每一種彈層調(diào)用方式,都會返回一個index layer.close(index); //此時你只需要把獲得的index,輕輕地賦予layer.close即可//如果你想關(guān)閉最新彈出的層,直接獲取layer.index即可 layer.close(layer.index); //它獲取的始終是最新彈出的某個層,值是由layer內(nèi)部動態(tài)遞增計算的//當(dāng)你在iframe頁面關(guān)閉自身時 var index = parent.layer.getFrameIndex(window.name); //先得到當(dāng)前iframe層的索引 parent.layer.close(index); //再執(zhí)行關(guān)閉

?

layer.closeAll(type) - 關(guān)閉所有層

如果你很懶,你不想去獲取index你只想關(guān)閉。那么closeAll真的可以幫上你。如果你不指向?qū)宇愋偷脑?#xff0c;它會銷毀掉當(dāng)前頁所有的layer層。當(dāng)然,如果你只想關(guān)閉某個類型的層,那么你可以

layer.closeAll(); //瘋狂模式,關(guān)閉所有層 layer.closeAll('dialog'); //關(guān)閉信息框 layer.closeAll('page'); //關(guān)閉所有頁面層 layer.closeAll('iframe'); //關(guān)閉所有的iframe層 layer.closeAll('loading'); //關(guān)閉加載層 layer.closeAll('tips'); //關(guān)閉所有的tips層

?

layer.style(index, cssStyle) - 重新定義層的樣式

該方法對loading層和tips層無效。參數(shù)index為層的索引,cssStyle允許你傳入任意的css屬性

//重新給指定層設(shè)定width、top等 layer.style(index, { width: '1000px', top: '10px' });

?

layer.title(title, index) - 改變層的標(biāo)題

使用方式:layer.title('標(biāo)題變了', index)

?

layer.getChildFrame(selector, index) - 獲取iframe頁的DOM

當(dāng)你試圖在當(dāng)前頁獲取iframe頁的DOM元素時,你可以用此方法。selector即iframe頁的選擇器

layer.open({ type: 2, content: 'test/iframe.html', success: function(layero, index){ var body = layer.getChildFrame('body', index); var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe頁的窗口對象,執(zhí)行iframe頁的方法:iframeWin.method(); console.log(body.html()) //得到iframe頁的body內(nèi)容 body.find('input').val('Hi,我是從父頁來的') } });

?

layer.getFrameIndex(windowName) - 獲取特定iframe層的索引

此方法一般用于在iframe頁關(guān)閉自身時用到。

//假設(shè)這是iframe頁 var index = parent.layer.getFrameIndex(window.name); //先得到當(dāng)前iframe層的索引 parent.layer.close(index); //再執(zhí)行關(guān)閉

?

layer.iframeAuto(index) - 指定iframe層自適應(yīng)

調(diào)用該方法時,iframe層的高度會重新進(jìn)行適應(yīng)

?

layer.iframeSrc(index, url) - //重置特定iframe url

似乎不怎么常用的樣子。使用方式:layer.iframeSrc(index, 'http://sentsin.com')

?

layer.setTop(layero) -置頂當(dāng)前窗口

非常強(qiáng)大的一個方法,雖然一般很少用。但是當(dāng)你的頁面有很多很多l(xiāng)ayer窗口,你需要像Window窗體那樣,點擊某個窗口,該窗體就置頂在上面,那么setTop可以來輕松實現(xiàn)。它采用巧妙的邏輯,以使這種置頂?shù)男阅苓_(dá)到最優(yōu)

//通過這種方式彈出的層,每當(dāng)它被選擇,就會置頂。 layer.open({ type: 2, shade: false, area: '500px', maxmin: true, content: 'http://www.layui.com', zIndex: layer.zIndex, //重點1 success: function(layero){ layer.setTop(layero); //重點2 } });

?

layer.full()、layer.min()、layer.restore() - 手工執(zhí)行最大小化

(這三個醬油又一次被并列 ==。)一般用于在自定義元素上觸發(fā)最大化、最小化和全屏。

請注意,從2.3開始,無需通過layer.config來加載拓展模塊。如果您是之前版本,則需通過下述方式來加載 layer.config({ extend: 'extend/layer.ext.js' });

?

layer.prompt(options, yes) - 輸入層

prompt的參數(shù)也是向前補齊的。options不僅可支持傳入基礎(chǔ)參數(shù),還可以傳入prompt專用的屬性。當(dāng)然,也可以不傳。yes攜帶value 表單值index 索引elem 表單元素

//prompt層新定制的成員如下 { formType: 1, //輸入框類型,支持0(文本)默認(rèn)1(密碼)2(多行文本) value: '', //初始時的值,默認(rèn)空字符 maxlength: 140, //可輸入文本的最大長度,默認(rèn)500 }//例子1 layer.prompt(function(value, index, elem){ alert(value); //得到value layer.close(index); });//例子2 layer.prompt({ formType: 2, value: '初始值', title: '請輸入值', area: ['800px', '350px'] //自定義文本域?qū)捀?}, function(value, index, elem){ alert(value); //得到value layer.close(index); });

?

layer.tab(options) - tab層

tab層只單獨定制了一個成員,即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' }] });

?

layer.photos(options) - 相冊層

相冊層,也可以稱之為圖片查看器。它的出場動畫從layer內(nèi)置的動畫類型中隨機(jī)展現(xiàn)。photos支持傳入json和直接讀取頁面圖片兩種方式。如果是json傳入,如下:

$.getJSON('/jquery/layer/test/photos.json', function(json){ layer.photos({ photos: json ,anim: 5 //0-6的選擇,指定彈出圖片動畫類型,默認(rèn)隨機(jī)(請注意,3.0之前的版本用shift參數(shù)) }); }); //而返回的json需嚴(yán)格按照如下格式: { "title": "", //相冊標(biāo)題 "id": 123, //相冊id "start": 0, //初始顯示的圖片序號,默認(rèn)0 "data": [ //相冊包含的圖片,數(shù)組格式 { "alt": "圖片名", "pid": 666, //圖片id "src": "", //原圖地址 "thumb": "" //縮略圖地址 } ] }

如果是直接從頁面中獲取圖片,那么需要指向圖片的父容器,并且你的img可以設(shè)定一些規(guī)定的屬性(但不是必須的)。

//HTML示例 <div id="layer-photos-demo" class="layer-photos-demo"> <img layer-pid="圖片id,可以不寫" layer-src="大圖地址" src="縮略圖" alt="圖片名"> <img layer-pid="圖片id,可以不寫" layer-src="大圖地址" src="縮略圖" alt="圖片名"> </div><script> //調(diào)用示例 layer.photos({ photos: '#layer-photos-demo' ,anim: 5 //0-6的選擇,指定彈出圖片動畫類型,默認(rèn)隨機(jī)(請注意,3.0之前的版本用shift參數(shù)) }); </script>

看看一個實例唄:

???

第二種方式的圖片查看器顯然更加簡單,因為無需像第一種那樣返回規(guī)定的json,但是他們還是有各自的應(yīng)用場景的,你可以按照你的需求進(jìn)行選擇。另外,photos還有個tab回調(diào),切換圖片時觸發(fā)。

layer.photos({ photos: json/選擇器, tab: function(pic, layero){ console.log(pic) //當(dāng)前圖片的一些信息 } });

?

結(jié)語

合理地設(shè)定基礎(chǔ)參數(shù),合理地選擇內(nèi)置方法,合理的心態(tài),合理地閱讀,只要一切都在合理的前提下,你才會感知到layer許許多多令人愉悅的地方,她真的是否如你所愿,取決于你對她了解的深遠(yuǎn)。愿layer能給你的web開發(fā)帶來一段美妙的旅程。別忘了在線調(diào)試。

總結(jié)

以上是生活随笔為你收集整理的layer之弹层组件文档 layui.layer(v.1.9.0之后)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。