layui官網對tab頁籤的介紹比較簡單
3個重要的樣式缺一不可:layui-tab layui-tab-title layui-tab-content
<div class="layui-tab">
<ul class="layui-tab-title">
<li class="layui-this">網站設定</li>
<li>使用者管理</li>
<li>權限配置設定</li>
<li>商品管理</li>
<li>訂單管理</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">内容1</div>
<div class="layui-tab-item">内容2</div>
<div class="layui-tab-item">内容3</div>
<div class="layui-tab-item">内容4</div>
<div class="layui-tab-item">内容5</div>
</div>
</div>
<script>
//注意:頁籤 依賴 element 子產品,否則無法進行功能性操作
layui.use('element', function(){
var element = layui.element;
//…
});
</script>
這是最基本的切換功能,如果想要更加靈活的運用好Tab選項,就必須要了解layui裡面的element子產品。
- 首先給帶有layui-tab樣式的元素添加lay-filter屬性值,接下來就可以通過element對tab進行一系列的操作了;
-
element.tabAdd(filter, options);filter是lay-filter的值,options可以編輯内容和标題
{
id: //layui-tab-title清單中對應的lay-id的值
,titile://選項标題
,content: //内容區塊,可以是iframe
}
- element.tabDelete(filter, layid);删除指定(傳lay-id屬性值)Tab選項,這個沒什麼好說的
- element.tabChange(filter, layid);切換到指定的Tab選項
前端html頁面layui下載下傳位址
div class="layui-side" >
<div class=" layui-side-scroll">
<!-- 左側導航區域(可配合layui已有的垂直導航) -->
<ul class="layui-nav layui-nav-tree" lay-filter="test" style="background-color:#FFFFFF;">
<li class="layui-nav-item" style="background-color: #3A5C82;">
<a class="" href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >清單1</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" id="menu_three">清單1-1</a>
<ol class="layui-nav-child" >
<li style="background-color: #3A5C82;">
<!-- 菜單欄的資料一般需要從背景擷取-->
<a class="site-tab-active" data-id="1" data-title="清單1-1-1" data-url="menu1.html">清單1-1-1</a>
<a class="site-tab-active" data-id="2" data-title="清單1-1-2" data-url="menu2.html">清單1-1-2</a>
<a class="site-tab-active" data-id="3" data-title="清單1-1-3" data-url="menu3.html">清單1-1-3</a>
</li>
</ol>
</dd>
</dl>
</li>
</ul>
</div>
</div>
<div class="page-content">
<div class="layui-tab tab" lay-filter="xbs_tab" lay-allowclose="true">
<ul class="layui-tab-title">
</ul>
<ul class="rightmenu" style="position: absolute;display: none;font-size: 12px;font-family: 'Microsoft Yahei';">
<li data-type="closethis">關閉目前</li>
<li data-type="closeall">關閉所有</li>
</ul>
<div class="layui-tab-content">
</div>
</div>
</div>
js代碼
layui.use(['element','jquery'], function(){
var element = layui.element,$=layui.jquery;
//當點選有site-tab-active屬性的标簽時,即左側菜單欄(可以是無限菜單欄)中内容 ,觸發點選事件
$('.site-tab-active').on('click', function() {
var dataid = $(this);
//這時會判斷右側.layui-tab-title屬性下的有lay-id屬性的li的數目,即已經打開的tab項數目
if ($(".layui-tab-title li[lay-id]").length <= 0) {
//如果比零小,則直接打開新的tab項
element.tabAdd('xbs_tab',{
title:dataid.attr("data-title"),
content:'<iframe data-frameid="'+dataid.attr("data-id")+'" scrolling="auto" frame src="'+dataid.attr("data-url")+'" style="width:100%;height:99%;"></iframe>',
id:dataid.attr("data-id")
})
} else {
//否則判斷該tab項是否以及存在
var isData = false; //初始化一個标志,為false說明未打開該tab項 為true則說明已有
$.each($(".layui-tab-title li[lay-id]"), function () {
//如果點選左側菜單欄所傳入的id 在右側tab項中的lay-id屬性可以找到,則說明該tab項已經打開
if ($(this).attr("lay-id") == dataid.attr("data-id")) {
isData = true;
}
})
if (isData == false) {
//标志為false 新增一個tab項
element.tabAdd('xbs_tab',{
title:dataid.attr("data-title"),
content:'<iframe data-frameid="'+dataid.attr("data-id")+'" scrolling="auto" frame src="'+dataid.attr("data-url")+'" style="width:100%;height:99%;"></iframe>',
id:dataid.attr("data-id")
})
}
}
//最後不管是否新增tab,最後都轉到要打開的選項頁面上
element.tabChange('xbs_tab',dataid.attr('data-id'))
});
})