首頁 web前端 Layui教程 layui.layer獨立組件詳解

layui.layer獨立組件詳解

Nov 30, 2019 pm 01:29 PM
layui 組件

layui.layer獨立組件詳解

layer至今仍作為layui的代表作,她的受眾廣泛並非偶然,而是這五年多的堅持,不斷完善和維護、不斷建設和提升社區服務,使得猿們紛紛自發傳播,乃至於成為今天的Layui最強勁的源動力。

目前,layer已成為國內最多人使用的web彈層組件,GitHub自然Stars3000 ,官網累計下載量達30w ,大概有20萬Web平台正在使用layer。

 使用場景:

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

layer至今仍作為layui的代表作,她的受眾廣泛並非偶然,而是這五年多的堅持,不斷完善和維護、不斷建設和提升社區服務,使得猿們紛紛自發傳播,乃至於成為今天的Layui最強勁的源動力。

目前,layer已成為國內最多人使用的web彈層組件,GitHub自然Stars3000 ,官網累計下載量達30w ,大概有20萬Web平台正在使用layer。

使用場景:

由於layer可以獨立使用,也可以透過Layui模組化使用。所以請依照你的實際需求來選擇

1、作為獨立元件使用layer

引入好layer.js后,直接用即可
<script src="layer.js"></script>
<script>
  layer.msg(&#39;hello&#39;); 
</script>
登入後複製

2、在layui中使用layer

layui.use(&#39;layer&#39;, function(){
  var layer = layui.layer;
  layer.msg(&#39;hello&#39;);
});
登入後複製

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

基礎參數:

我們提到的基礎參數主要指在呼叫方法時所使用的配置項,如:layer.open({content: ''})layer.msg(' ', {time: 3})等,其中的content和time即是基礎參數,以鍵值形式存在,基礎參數可合理應用於任何層類型中,您不需要所有都去配置,大多數都是可選的。而其中的layer.open、layer.msg就是內建方法。注意,從2.3開始,無需透過layer.config來載入拓展模組

type - 基本層類型

類型:Number,預設:0

layer提供了5種層類型。可傳入的值有:0(訊息框,預設)1(頁面層)2(iframe層)3(載入層)4(tips層)。若你採用layer.open({type: 1})方式調用,則type為必填項(訊息框除外)

title - 標題

類型: String/Array/Boolean,預設:'訊息'

title支援三種類型的值,若你傳入的是普通的字串,如title :'我是標題',那麼只會改變標題文字;若你還需要自訂標題區域樣式,那麼你可以title: ['文字', 'font-size:18px;'],陣列第二項可以寫任意css樣式;如果你不想顯示標題欄,你可以title: false

content - 內容

類型:String/DOM/Array,預設:''

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

/!*
 如果是页面层
 */
layer.open({
  type: 1, 
  content: &#39;传入任意的文本或html&#39; //这里content是一个普通的String
});
layer.open({
  type: 1,
  content: $(&#39;#id&#39;) //这里content是一个DOM,注意:最好该元素要存放在body最外层,否则可能被其它的相对元素所影响
});
//Ajax获取
$.post(&#39;url&#39;, {}, function(str){
  layer.open({
    type: 1,
    content: str //注意,如果str是object,那么需要字符拼接。
  });
});
/!*
 如果是iframe层
 */
layer.open({
  type: 2, 
  content: &#39;http://sentsin.com&#39; //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: [&#39;http://sentsin.com&#39;, &#39;no&#39;]
}); 
/!*
 如果是用layer.open执行tips层
 */
layer.open({
  type: 4,
  content: [&#39;内容&#39;, &#39;#id&#39;] //数组第二项即吸附元素选择器或者DOM
});
登入後複製

skin - 樣式類別名稱

類型:String,預設:''

skin不僅允許你傳入layer內建的樣式class名,也可以傳入您自訂的class名。這是一個很好的切入點,這意味著你可以藉助skin輕鬆完成不同的風格客製化。

目前layer內建的skin有:layui-layer-lanlayui-layer-molv,未來我們還會選擇性地內建更多,但更推薦您自己來定義。以下是一個自訂風格的簡單範例

//单个使用
layer.open({
  skin: &#39;demo-class&#39;
});
//全局使用。即所有弹出层都默认采用,但是单个配置skin的优先级更高
layer.config({
  skin: &#39;demo-class&#39;
})
//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是为了保证优先级。你可以借助Chrome调试工具,定义更多样式控制层更多的区域。
登入後複製

area - 寬高

類型:String/Array,預設:'auto'

##在預設狀態下,layer是寬高都自適應的,但當你只想定義寬度時,你可以area: '500px',高度仍然是自適應的。當你寬高都要定義時,你可以area: ['500px', '300px']

offset - 座標類型:String/Array,預設:垂直水平居中

offset預設情況下不用設定。但如果你不想垂直水平居中,你也可以進行以下賦值:

layui.layer獨立組件詳解

icon - 圖示。資訊框和載入層的私有參數

類型:Number,預設:-1(資訊框)/0(載入層)

資訊框預設不顯示圖示。當你想顯示圖示時,預設皮膚可以傳入0-6如果是載入層,可以傳入0-2。如:

//eg1
layer.alert(&#39;酷毙了&#39;, {icon: 1});
//eg2
layer.msg(&#39;不开心。。&#39;, {icon: 5});
//eg3
layer.load(1); //风格1的加载
登入後複製

btn - 按鈕

類型:String/Array,預設:'確認'

訊息框模式時,btn預設是一個確認按鈕,其它層類型則預設不顯示,載入層和tips層則無效。當您只想自訂一個按鈕時,你可以btn: '我知道了',當你要定義兩個按鈕時,你可以btn: ['yes', 'no']。當然,你也可以定義更多按鈕,例如:btn: ['按鈕1', '按鈕2', '按鈕3', …],按鈕1的回呼是yes,而從按鈕2開始,則回調為btn2 : function(){},以此類推。如:

//eg1       
layer.confirm(&#39;纳尼?&#39;, {
  btn: [&#39;按钮一&#39;, &#39;按钮二&#39;, &#39;按钮三&#39;] //可以无限个按钮
  ,btn3: function(index, layero){
    //按钮【按钮三】的回调
  }
}, function(index, layero){
  //按钮【按钮一】的回调
}, function(index){
  //按钮【按钮二】的回调
});
 
//eg2
layer.open({
  content: &#39;test&#39;
  ,btn: [&#39;按钮一&#39;, &#39;按钮二&#39;, &#39;按钮三&#39;]
  ,yes: function(index, layero){
    //按钮【按钮一】的回调
  }
  ,btn2: function(index, layero){
    //按钮【按钮二】的回调
    
    //return false 开启该代码可禁止点击该按钮关闭
  }
  ,btn3: function(index, layero){
    //按钮【按钮三】的回调
    
    //return false 开启该代码可禁止点击该按钮关闭
  }
  ,cancel: function(){ 
    //右上角关闭回调
    
    //return false 开启该代码可禁止点击该按钮关闭
  }
});
登入後複製

btnAlign - 按鈕排列

類型:String,預設:r

你可以快捷定义按钮的排列位置,btnAlign的默认值为r,即右对齐。该参数可支持的赋值如下:

layui.layer獨立組件詳解

closeBtn - 关闭按钮

类型:String/Boolean,默认:1

layer提供了两种风格的关闭按钮,可通过配置1和2来展示,如果不显示,则closeBtn: 0

shade - 遮罩

类型:String/Array/Boolean,默认:0.3

即弹层外区域。默认是0.3透明度的黑色背景('#000')。如果你想定义别的颜色,可以shade: [0.8, '#393D49'];如果你不想显示遮罩,可以shade: 0

shadeClose - 是否点击遮罩关闭

类型:Boolean,默认:false

如果你的shade是存在的,那么你可以设定shadeClose来控制点击弹层外区域关闭。

time - 自动关闭所需毫秒

类型:Number,默认:0

默认不会自动关闭。当你想自动关闭时,可以time: 5000,即代表5秒后自动关闭,注意单位是毫秒(1秒=1000毫秒)

id - 用于控制弹层唯一标识

类型:String,默认:空字符

设置该值后,不管是什么类型的层,都只允许同时弹出一个。一般用于页面层和iframe层模式

anim - 弹出动画

类型:Number,默认:0

我们的出场动画全部采用CSS3。这意味着除了ie6-9,其它所有浏览器都是支持的。目前anim可支持的动画类型有0-6 如果不想显示动画,设置 anim: -1 即可。另外需要注意的是,3.0之前的版本用的是 shift 参数

isOutAnim - 关闭动画 (layer 3.0.3新增)

类型:Boolean,默认:true

默认情况下,关闭层时会有一个过度动画。如果你不想开启,设置 isOutAnim: false 即可

maxmin - 最大最小化。

类型:Boolean,默认:false

该参数值对type:1和type:2有效。默认不显示最大小化按钮。需要显示配置maxmin: true即可

fixed - 固定

类型:Boolean,默认:true

即鼠标滚动时,层是否固定在可视区域。如果不想,设置fixed: false即可

resize - 是否允许拉伸

类型:Boolean,默认:true

默认情况下,你可以在弹层右下角拖动来拉伸尺寸。如果对指定的弹层屏蔽该功能,设置 false即可。该参数对loading、tips层无效

resizing - 监听窗口拉伸动作

类型:Function,默认:null

当你拖拽弹层右下角对窗体进行尺寸调整时,如果你设定了该回调,则会执行。回调返回一个参数:当前层的DOM对象

resizing: function(layero){
  console.log(layero);
}
登入後複製

scrollbar - 是否允许浏览器出现滚动条

类型:Boolean,默认:true

默认允许浏览器滚动,如果设定scrollbar: false,则屏蔽

maxWidth - 最大宽度

类型:,默认:360

请注意:只有当area: 'auto'时,maxWidth的设定才有效。

zIndex - 层叠顺序

类型:,默认:19891014(贤心生日 0.0)

一般用于解决和其它组件的层叠冲突。

move - 触发拖动的元素

类型:String/DOM/Boolean,默认:'.layui-layer-title'

默认是触发标题区域拖拽。如果你想单独定义,指向元素的选择器或者DOM即可。如move: '.mine-move'。你还配置设定move: false来禁止拖拽

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

类型:Boolean,默认:false

默认只能在窗口内拖拽,如果你想让拖到窗外,那么设定moveOut: true即可

moveEnd - 拖动完毕后的回调方法

类型:Function,默认:null

默认不会触发moveEnd,如果你需要,设定moveEnd: function(layero){}即可。其中layero为当前层的DOM对象

tips - tips方向和颜色

类型:Number/Array,默认:2

tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']

tipsMore - 是否允许多个tips

类型:Boolean,默认:false

允许多个意味着不会销毁之前的tips层。通过tipsMore: true开启

success - 层弹出后的成功回调方法

类型:Function,默认:null

当你需要在层创建完毕时即执行一些语句,可以通过该回调。success会携带两个参数,分别是当前层DOM当前层索引。如:

layer.open({
  content: &#39;测试回调&#39;,
  success: function(layero, index){
    console.log(layero, index);
  }
});
登入後複製

yes - 确定按钮回调方法

类型:Function,默认:null

该回调携带两个参数,分别为当前层索引、当前层DOM对象。如:

layer.open({
  content: &#39;测试回调&#39;,
  yes: function(index, layero){
    //do something
    layer.close(index); //如果设定了yes回调,需进行手工关闭
  }
});
登入後複製

cancel - 右上角关闭按钮触发的回调

类型:Function,默认:null

该回调携带两个参数,分别为:当前层索引参数(index)、当前层的DOM对象(layero),默认会自动触发关闭。如果不想关闭,return false即可,如;

cancel: function(index, layero){ 
  if(confirm(&#39;确定要关闭么&#39;)){ //只有当点击confirm框的确定时,该层才会关闭
    layer.close(index)
  }
  return false; 
}
登入後複製

更多layui知识请关注layui使用教程栏目。

以上是layui.layer獨立組件詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何安裝Win10舊版元件DirectPlay 如何安裝Win10舊版元件DirectPlay Dec 28, 2023 pm 03:43 PM

不少用戶在玩win10的的一些遊戲的時候總是會遇到一些問題,比如說卡屏和花屏等等情況,這個時候我們是可以採用打開directplay這個功能來解決的,而且功能的操作方法也很簡單。 win10舊版元件directplay怎麼安裝1、在搜尋框裡面輸入「控制台」然後開啟2、檢視方式選擇大圖示3、找到「程式與功能」4、點選左側的啟用或關閉win功能5、選擇舊版這裡的勾選上就可以了

layui登陸頁怎麼設定跳轉 layui登陸頁怎麼設定跳轉 Apr 04, 2024 am 03:12 AM

layui 登入頁面跳轉設定步驟:新增跳轉代碼:在登入表單提交按鈕點選事件中新增判斷,成功登入後透過 window.location.href 跳到指定頁面。修改 form 配置:在 lay-filter="login" 的 form 元素中新增 hidden 輸入字段,name 為 "redirect",value 為目標頁面位址。

layui怎麼取得表單數據 layui怎麼取得表單數據 Apr 04, 2024 am 03:39 AM

layui 提供了多種取得表單資料的方法,包括直接取得表單所有欄位資料、取得單一表單元素值、使用formAPI.getVal() 方法取得指定欄位值、將表單資料序列化並作為AJAX 請求參數,以及監聽表單提交事件獲取資料。

Angular元件及其顯示屬性:了解非block預設值 Angular元件及其顯示屬性:了解非block預設值 Mar 15, 2024 pm 04:51 PM

Angular框架中元件的預設顯示行為不是區塊級元素。這種設計選擇促進了元件樣式的封裝,並鼓勵開發人員有意識地定義每個元件的顯示方式。透過明確設定CSS屬性 display,Angular組件的顯示可以完全控制,從而實現所需的佈局和響應能力。

如何開啟win10舊版組件的設置 如何開啟win10舊版組件的設置 Dec 22, 2023 am 08:45 AM

win10舊版元件是需要使用者自己去設定裡面打開的,因為很多的元件平時都是預設關閉的狀態,首先我們需要進入到設定裡面,操作很簡單,跟著下面的步驟來就可以了win10舊版元件在哪裡開啟1、點選開始,然後點選「win系統」2、點選進入控制台3、再點選下面的程式4、點選「啟用或關閉win功能」5、在這裡就可以選擇你要的開啟了

layui跟vue有啥差別 layui跟vue有啥差別 Apr 04, 2024 am 03:54 AM

layui與Vue的差異主要體現在功能和關注點上。 layui專注於快速開發UI元素,提供預製元件簡化頁面建置;而Vue則是全端框架,注重資料綁定、元件化開發和狀態管理,更適合建構複雜應用程式。 layui學習簡單,適合快速建立頁面;Vue學習曲線陡峭,但有助於建立可擴展且易於維護的應用程式。根據專案需求和開發者技能水平,可以選擇合適的框架。

layui如何實現自適應 layui如何實現自適應 Apr 26, 2024 am 03:00 AM

透過使用layui框架的響應式佈局功能,可以實現自適應佈局。步驟包括:引用layui框架。定義自適應佈局容器,設定layui-container類別。使用響應式斷點(xs/sm/md/lg)隱藏特定斷點下的元素。利用網格系統(layui-col-)指定元素寬度。透過偏移量(layui-offset-)建立間距。使用響應式實用工具(layui-invisible/show/block/inline)控制元素的可見性和顯示方式。

layui怎麼傳數據 layui怎麼傳數據 Apr 26, 2024 am 03:39 AM

使用 layui 傳輸資料的方法如下:使用 Ajax:建立請求對象,設定請求參數(URL、方法、資料),處理回應。使用內建方法:使用 $.post、$.get、$.postJSON 或 $.getJSON 等內建方法簡化資料傳輸。

See all articles