溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

layui的layer組件介紹

發(fā)布時(shí)間:2020-06-21 21:12:57 來源:億速云 閱讀:319 作者:鴿子 欄目:web開發(fā)

layer至今仍作為layui的代表作,她的受眾廣泛并非偶然,而是這五年多的堅(jiān)持,不斷完善和維護(hù)、不斷建設(shè)和提升社區(qū)服務(wù),使得猿們紛紛自發(fā)傳播,乃至于成為今天的Layui最強(qiáng)勁的源動(dòng)力。

目前,layer已成為國內(nèi)最多人使用的web彈層組件,GitHub自然Stars3000+,官網(wǎng)累計(jì)下載量達(dá)30w+,大概有20萬Web平臺(tái)正在使用layer。

使用場景:

由于layer可以獨(dú)立使用,也可以通過Layui模塊化使用。所以請(qǐng)按照你的實(shí)際需求來選擇

layer至今仍作為layui的代表作,她的受眾廣泛并非偶然,而是這五年多的堅(jiān)持,不斷完善和維護(hù)、不斷建設(shè)和提升社區(qū)服務(wù),使得猿們紛紛自發(fā)傳播,乃至于成為今天的Layui最強(qiáng)勁的源動(dòng)力。

目前,layer已成為國內(nèi)最多人使用的web彈層組件,GitHub自然Stars3000+,官網(wǎng)累計(jì)下載量達(dá)30w+,大概有20萬Web平臺(tái)正在使用layer。

使用場景:

由于layer可以獨(dú)立使用,也可以通過Layui模塊化使用。所以請(qǐng)按照你的實(shí)際需求來選擇

1、作為獨(dú)立組件使用layer

引入好layer.js后,直接用即可
<script src="layer.js"></script>
<script>
  layer.msg('hello'); 
</script>

2、在layui中使用layer

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

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

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

我們提到的基礎(chǔ)參數(shù)主要指調(diào)用方法時(shí)用到的配置項(xiàng),如: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種層類型??蓚魅氲闹涤校?(信息框,默認(rèn))1(頁面層)2(iframe層)3(加載層)4(tips層)。 若你采用layer.open({type: 1})方式調(diào)用,則type為必填項(xiàng)(信息框除外)

title - 標(biāo)題

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

title支持三種類型的值,若你傳入的是普通的字符串,如title :'我是標(biāo)題',那么只會(huì)改變標(biāo)題文本;若你還需要自定義標(biāo)題區(qū)域樣式,那么你可以title: ['文本', 'font-size:18px;'],數(shù)組第二項(xiàng)可以寫任意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是一個(gè)普通的String
});
layer.open({
  type: 1,
  content: $('#id') //這里content是一個(gè)DOM,注意:最好該元素要存放在body最外層,否則可能被其它的相對(duì)元素所影響
});
//Ajax獲取
$.post('url', {}, function(str){
  layer.open({
    type: 1,
    content: str //注意,如果str是object,那么需要字符拼接。
  });
});
/!*
 如果是iframe層
 */
layer.open({
  type: 2, 
  content: 'http://sentsin.com' //這里content是一個(gè)URL,如果你不想讓iframe出現(xiàn)滾動(dòng)條,你還可以content: ['http://sentsin.com', 'no']
}); 
/!*
 如果是用layer.open執(zhí)行tips層
 */
layer.open({
  type: 4,
  content: ['內(nèi)容', '#id'] //數(shù)組第二項(xiàng)即吸附元素選擇器或者DOM
});

skin - 樣式類名

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

skin不僅允許你傳入layer內(nèi)置的樣式class名,還可以傳入您自定義的class名。這是一個(gè)很好的切入點(diǎn),意味著你可以借助skin輕松完成不同的風(fēng)格定制。

目前l(fā)ayer內(nèi)置的skin有:layui-layer-lanlayui-layer-molv,未來我們還會(huì)選擇性地內(nèi)置更多,但更推薦您自己來定義。以下是一個(gè)自定義風(fēng)格的簡單例子

//單個(gè)使用
layer.open({
  skin: 'demo-class'
});
//全局使用。即所有彈出層都默認(rèn)采用,但是單個(gè)配置skin的優(yōu)先級(jí)更高
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)先級(jí)。你可以借助Chrome調(diào)試工具,定義更多樣式控制層更多的區(qū)域。

area - 寬高

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

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

offset - 坐標(biāo)
類型:String/Array,默認(rèn):垂直水平居中

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

layui的layer組件介紹

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

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

信息框默認(rèn)不顯示圖標(biāo)。當(dāng)你想顯示圖標(biāo)時(shí),默認(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)'

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

//eg1       
layer.confirm('納尼?', {
  btn: ['按鈕一', '按鈕二', '按鈕三'] //可以無限個(gè)按鈕
  ,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 開啟該代碼可禁止點(diǎn)擊該按鈕關(guān)閉
  }
  ,btn3: function(index, layero){
    //按鈕【按鈕三】的回調(diào)
    
    //return false 開啟該代碼可禁止點(diǎn)擊該按鈕關(guān)閉
  }
  ,cancel: function(){ 
    //右上角關(guān)閉回調(diào)
    
    //return false 開啟該代碼可禁止點(diǎn)擊該按鈕關(guān)閉
  }
});

btnAlign - 按鈕排列
類型:String,默認(rèn):r

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

layui的layer組件介紹

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 - 是否點(diǎn)擊遮罩關(guān)閉

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

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

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

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

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

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

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

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

anim - 彈出動(dòng)畫

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

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

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

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

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

maxmin - 最大最小化。

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

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

fixed - 固定

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

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

resize - 是否允許拉伸

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

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

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

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

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

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

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

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

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

maxWidth - 最大寬度

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

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

zIndex - 層疊順序

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

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

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

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

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

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

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

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

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

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

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

tips - tips方向和顏色

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

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

tipsMore - 是否允許多個(gè)tips

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

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

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

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

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

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

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

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

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

layer.open({
  content: '測(cè)試回調(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)攜帶兩個(gè)參數(shù),分別為:當(dāng)前層索引參數(shù)(index)、當(dāng)前層的DOM對(duì)象(layero),默認(rèn)會(huì)自動(dòng)觸發(fā)關(guān)閉。如果不想關(guān)閉,return false即可,如;

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

以上就是layui.layer獨(dú)立組件詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI