您好,登錄后才能下訂單哦!
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('hello'); </script>
2、在layui中使用layer
layui.use('layer', function(){ var layer = layui.layer; layer.msg('hello'); });
除了上面有所不同,其它都完全一致。
基礎參數:
我們提到的基礎參數主要指調用方法時用到的配置項,如: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: '傳入任意的文本或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出現滾動條,你還可以content: ['http://sentsin.com', 'no'] }); /!* 如果是用layer.open執行tips層 */ layer.open({ type: 4, content: ['內容', '#id'] //數組第二項即吸附元素選擇器或者DOM });
skin - 樣式類名
類型:String,默認:''
skin不僅允許你傳入layer內置的樣式class名,還可以傳入您自定義的class名。這是一個很好的切入點,意味著你可以借助skin輕松完成不同的風格定制。
目前layer內置的skin有:layui-layer-lanlayui-layer-molv,未來我們還會選擇性地內置更多,但更推薦您自己來定義。以下是一個自定義風格的簡單例子
//單個使用 layer.open({ skin: 'demo-class' }); //全局使用。即所有彈出層都默認采用,但是單個配置skin的優先級更高 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是為了保證優先級。你可以借助Chrome調試工具,定義更多樣式控制層更多的區域。
area - 寬高
類型:String/Array,默認:'auto'
在默認狀態下,layer是寬高都自適應的,但當你只想定義寬度時,你可以area: '500px',高度仍然是自適應的。當你寬高都要定義時,你可以area: ['500px', '300px']
offset - 坐標
類型:String/Array,默認:垂直水平居中
offset默認情況下不用設置。但如果你不想垂直水平居中,你還可以進行以下賦值:
icon - 圖標。信息框和加載層的私有參數
類型:Number,默認:-1(信息框)/0(加載層)
信息框默認不顯示圖標。當你想顯示圖標時,默認皮膚可以傳入0-6如果是加載層,可以傳入0-2。如:
//eg1 layer.alert('酷斃了', {icon: 1}); //eg2 layer.msg('不開心。。', {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('納尼?', { btn: ['按鈕一', '按鈕二', '按鈕三'] //可以無限個按鈕 ,btn3: function(index, layero){ //按鈕【按鈕三】的回調 } }, function(index, layero){ //按鈕【按鈕一】的回調 }, function(index){ //按鈕【按鈕二】的回調 }); //eg2 layer.open({ content: 'test' ,btn: ['按鈕一', '按鈕二', '按鈕三'] ,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,即右對齊。該參數可支持的賦值如下:
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: '測試回調', success: function(layero, index){ console.log(layero, index); } });
yes - 確定按鈕回調方法
類型:Function,默認:null
該回調攜帶兩個參數,分別為當前層索引、當前層DOM對象。如:
layer.open({ content: '測試回調', yes: function(index, layero){ //do something layer.close(index); //如果設定了yes回調,需進行手工關閉 } });
cancel - 右上角關閉按鈕觸發的回調
類型:Function,默認:null
該回調攜帶兩個參數,分別為:當前層索引參數(index)、當前層的DOM對象(layero),默認會自動觸發關閉。如果不想關閉,return false即可,如;
cancel: function(index, layero){ if(confirm('確定要關閉么')){ //只有當點擊confirm框的確定時,該層才會關閉 layer.close(index) } return false; }
以上就是layui.layer獨立組件詳解的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。