Skip to content

Tag 标签

用于标记和分类的标签组件。

基础用法

html
<div class="sa-tag" data-tag data-text="标签"></div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

不同类型

支持多种类型:successwarningdangerinfo

html
<div class="sa-tag" data-tag data-type="success" data-text="成功"></div>
<div class="sa-tag" data-tag data-type="warning" data-text="警告"></div>
<div class="sa-tag" data-tag data-type="danger" data-text="危险"></div>
<div class="sa-tag" data-tag data-type="info" data-text="信息"></div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

可关闭

通过 data-closable="true" 启用关闭功能。

html
<div class="sa-tag" 
     data-tag 
     data-text="可关闭的标签" 
     data-closable="true">
</div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

不同尺寸

通过 data-size 属性设置标签大小。

html
<div class="sa-tag" data-tag data-size="large" data-text="大标签"></div>
<div class="sa-tag" data-tag data-text="默认标签"></div>
<div class="sa-tag" data-tag data-size="small" data-text="小标签"></div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

自定义颜色

html
<div class="sa-tag" 
     data-tag 
     data-text="自定义颜色"
     data-color="#ff6b6b">
</div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

API

构造函数参数

参数说明类型默认值
container容器选择器或元素string | HTMLElement-
options配置选项SaTagOptions{}

配置选项

参数说明类型可选值默认值
text标签文本string-''
type标签类型stringsuccess / warning / danger / info-
color自定义颜色string--
closable是否可关闭boolean-false
size标签尺寸stringlarge / default / smalldefault
onClose关闭回调function()--

方法

方法名说明参数返回值
close关闭标签-void
destroy销毁实例-void

自动初始化属性

属性说明类型默认值
class="sa-tag"启用自动初始化--
data-tag启用自动初始化标记boolean-
data-text标签文本string''
data-type标签类型string-
data-color自定义颜色string-
data-closable是否可关闭booleanfalse
data-size标签尺寸stringdefault

实际使用场景

场景 1:标签筛选

使用可关闭的标签实现筛选功能。

html
<div id="filter-tags" style="display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem;"></div>
<div id="filtered-content" style="padding: 1rem; border: 1px solid #ddd; border-radius: 4px;">
  全部内容
</div>

<script>
  SA.init('body');
  
  const tags = ['标签1', '标签2', '标签3'];
  const activeTags = new Set();
  
  tags.forEach((text, index) => {
    const container = document.createElement('div');
    document.getElementById('filter-tags').appendChild(container);
    
    const tag = new SaTag(container, {
      text: text,
      type: ['success', 'warning', 'info'][index],
      closable: true,
      onClose: () => {
        activeTags.delete(text);
        updateFilteredContent();
      }
    });
    
    activeTags.add(text);
  });
  
  function updateFilteredContent() {
    const content = document.getElementById('filtered-content');
    if (activeTags.size === 0) {
      content.textContent = '全部内容';
    } else {
      content.textContent = `已选择: ${Array.from(activeTags).join(', ')}`;
    }
  }
</script>
加载 SanoUI 组件中...
            
          

Released under the MIT License.