From 48e58c9cb192b4ac2905d23e6b9775cce71ebc19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?=
<3277200+sentsim@users.noreply.github.com>
Date: Mon, 5 Jun 2023 00:12:42 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20tab=20=E5=9C=A8=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0=E5=92=8C=E5=88=87=E6=8D=A2=E9=80=89=E9=A1=B9=E6=97=B6?=
=?UTF-8?q?=E7=9A=84=E6=8A=98=E5=8F=A0=E5=92=8C=E5=B1=95=E5=BC=80=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/modules/element.js | 45 +++++++++++++++++++++++++++---------------
1 file changed, 29 insertions(+), 16 deletions(-)
diff --git a/src/modules/element.js b/src/modules/element.js
index 17f0d67c..ef265212 100644
--- a/src/modules/element.js
+++ b/src/modules/element.js
@@ -49,8 +49,10 @@ layui.define('jquery', function(exports){
barElem[0] ? barElem.before(li) : titElem.append(li);
contElem.append('
'+ (options.content || '') +'
');
- call.hideTabMore(true);
- call.tabAuto();
+ // call.hideTabMore(true);
+ // 是否添加即切换
+ options.change && this.tabChange(filter, options.id);
+ call.tabAuto(options.change);
return this;
};
@@ -180,19 +182,22 @@ layui.define('jquery', function(exports){
}
// Tab 自适应
- ,tabAuto: function(){
- var SCROLL = 'layui-tab-scroll', MORE = 'layui-tab-more', BAR = 'layui-tab-bar'
- ,CLOSE = 'layui-tab-close', that = this;
+ ,tabAuto: function(spread){
+ var SCROLL = 'layui-tab-scroll';
+ var MORE = 'layui-tab-more';
+ var BAR = 'layui-tab-bar';
+ var CLOSE = 'layui-tab-close';
+ var that = this;
$('.layui-tab').each(function(){
- var othis = $(this)
- ,title = othis.children('.layui-tab-title')
- ,item = othis.children('.layui-tab-content').children('.layui-tab-item')
- ,STOPE = 'lay-stope="tabmore"'
- ,span = $('');
+ var othis = $(this);
+ var title = othis.children('.layui-tab-title');
+ var item = othis.children('.layui-tab-content').children('.layui-tab-item');
+ var STOPE = 'lay-stope="tabmore"';
+ var span = $('');
if(that === window && device.ie != 8){
- call.hideTabMore(true)
+ // call.hideTabMore(true)
}
// 开启关闭图标
@@ -210,16 +215,24 @@ layui.define('jquery', function(exports){
if(typeof othis.attr('lay-unauto') === 'string') return;
// 响应式
- if(title.prop('scrollWidth') > title.outerWidth()+1){
+ if(
+ title.prop('scrollWidth') > title.outerWidth() + 1 ||
+ title.height() > title.find('li').eq(0).height()
+ ){
+ // 若执行是来自于切换,则自动展开
+ spread && title.addClass(MORE);
+
if(title.find('.'+BAR)[0]) return;
title.append(span);
othis.attr('overflow', '');
+
+ // 展开图标事件
span.on('click', function(e){
- title[this.title ? 'removeClass' : 'addClass'](MORE);
- this.title = this.title ? '' : '收缩';
+ var isSpread = title.hasClass(MORE);
+ title[isSpread ? 'removeClass' : 'addClass'](MORE);
});
} else {
- title.find('.'+BAR).remove();
+ title.find('.'+ BAR).remove();
othis.removeAttr('overflow');
}
});
@@ -530,7 +543,7 @@ layui.define('jquery', function(exports){
});
dom.on('click', '.layui-tab-title li', call.tabClick); // Tab 切换
- dom.on('click', call.hideTabMore); // 隐藏展开的 Tab
+ // dom.on('click', call.hideTabMore); // 隐藏展开的 Tab
$(window).on('resize', call.tabAuto); // 自适应
exports(MOD_NAME, element);