Skip to content
On this page

提示 Tooltip

文字提示气泡框,在鼠标悬停时显示,代替了系统的title提示。tooltip的default slot应该保证是一个dom或者一个component

基础用法

直接使用默认插槽即可

这是一段文字,鼠标经过其上时会显示tooltip
<template>
  <b-tooltip content="这是tooltip悬停文字">
    <span>这是一段文字,鼠标经过其上时会显示tooltip</span>
  </b-tooltip>
</template>
<template>
  <b-tooltip content="这是tooltip悬停文字">
    <span>这是一段文字,鼠标经过其上时会显示tooltip</span>
  </b-tooltip>
</template>

多种悬停位置

使用 placement 来设置不同的悬停位置









<template>
  <div class="demo-tooltip">
    <div class="top">
      <b-tooltip content="Top Left text" placement="top-start">
        <b-button>上左</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Top Center text" placement="top">
        <b-button>上边</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Top Right text" placement="top-end">
        <b-button>上右</b-button>
      </b-tooltip>
    </div>
    <div class="center">
      <div class="center-left">
        <b-tooltip content="Left Top text" placement="left-start">
          <b-button>左上</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Left Center text" placement="left">
          <b-button>左边</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Left Bottom text" placement="left-end">
          <b-button>左下</b-button>
        </b-tooltip>
      </div>
      <div class="center-right">
        <b-tooltip content="Right Top text" placement="right-start">
          <b-button>右上</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Right Center text" placement="right">
          <b-button>右边</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Right Bottom text" placement="right-end">
          <b-button>右下</b-button>
        </b-tooltip>
      </div>
    </div>
    <div class="bottom">
      <b-tooltip content="Bottom Left text" placement="bottom-start">
        <b-button>下左</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Bottom Center text" placement="bottom">
        <b-button>下边</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Bottom Right text" placement="bottom-end">
        <b-button>下右</b-button>
      </b-tooltip>
    </div>
  </div>
</template>

<style scoped>
.demo-tooltip {
  .top,
  .bottom {
    text-align: center;
  }
  .center {
    width: 300px;
    margin: 10px auto;
    overflow: hidden;
    .center-left {
      float: left;
    }
    .center-right {
      float: right;
    }
  }
}
</style>
<template>
  <div class="demo-tooltip">
    <div class="top">
      <b-tooltip content="Top Left text" placement="top-start">
        <b-button>上左</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Top Center text" placement="top">
        <b-button>上边</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Top Right text" placement="top-end">
        <b-button>上右</b-button>
      </b-tooltip>
    </div>
    <div class="center">
      <div class="center-left">
        <b-tooltip content="Left Top text" placement="left-start">
          <b-button>左上</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Left Center text" placement="left">
          <b-button>左边</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Left Bottom text" placement="left-end">
          <b-button>左下</b-button>
        </b-tooltip>
      </div>
      <div class="center-right">
        <b-tooltip content="Right Top text" placement="right-start">
          <b-button>右上</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Right Center text" placement="right">
          <b-button>右边</b-button>
        </b-tooltip>
        <br />
        <br />
        <b-tooltip content="Right Bottom text" placement="right-end">
          <b-button>右下</b-button>
        </b-tooltip>
      </div>
    </div>
    <div class="bottom">
      <b-tooltip content="Bottom Left text" placement="bottom-start">
        <b-button>下左</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Bottom Center text" placement="bottom">
        <b-button>下边</b-button>
        &nbsp;&nbsp;
      </b-tooltip>
      <b-tooltip content="Bottom Right text" placement="bottom-end">
        <b-button>下右</b-button>
      </b-tooltip>
    </div>
  </div>
</template>

<style scoped>
.demo-tooltip {
  .top,
  .bottom {
    text-align: center;
  }
  .center {
    width: 300px;
    margin: 10px auto;
    overflow: hidden;
    .center-left {
      float: left;
    }
    .center-right {
      float: right;
    }
  }
}
</style>

不同主题

设置 theme 来设置不同样式主题

<template>
  <b-tooltip content="light" theme="light">
    <b-button>light</b-button>
  </b-tooltip>
  <b-tooltip content="Dark" theme="dark">
    <b-button>Dark(default)</b-button>
  </b-tooltip>
</template>
<template>
  <b-tooltip content="light" theme="light">
    <b-button>light</b-button>
  </b-tooltip>
  <b-tooltip content="Dark" theme="dark">
    <b-button>Dark(default)</b-button>
  </b-tooltip>
</template>

多行&长文本

可以使用插槽或者长文本

<template>
  <b-tooltip placement="top">
    <b-button>多行</b-button>
    <template #content>
      <div>这是多行文字</div>
      <div>这是多行文字</div>
    </template>
  </b-tooltip>
  <b-tooltip
    placement="top"
    content="我是一段长文本,我是一段长文本,我是一段长文本,我是一段长文本,我是一段长文本,我是一段长文本"
  >
    <b-button>长文本</b-button>
  </b-tooltip>
</template>
<template>
  <b-tooltip placement="top">
    <b-button>多行</b-button>
    <template #content>
      <div>这是多行文字</div>
      <div>这是多行文字</div>
    </template>
  </b-tooltip>
  <b-tooltip
    placement="top"
    content="我是一段长文本,我是一段长文本,我是一段长文本,我是一段长文本,我是一段长文本,我是一段长文本"
  >
    <b-button>长文本</b-button>
  </b-tooltip>
</template>

延时&触发时机&禁用提示

可以使用不同的参数设置。

<template>
  <b-tooltip content="延时一秒显示悬停文字" :open-delay="1000">
    <b-button>延时一秒</b-button>
  </b-tooltip>
  <b-tooltip content="点击显示" trigger="click">
    <b-button>点击显示</b-button>
  </b-tooltip>
  <b-tooltip content="关闭和隐藏提示" :disabled="disabled">
    <b-button @click="disabled = !disabled">{{ disabled ? '关闭提示' : '开启提示' }}</b-button>
  </b-tooltip>
</template>

<script setup lang="ts">
import { ref } from 'vue'
const disabled = ref(false)
</script>
<template>
  <b-tooltip content="延时一秒显示悬停文字" :open-delay="1000">
    <b-button>延时一秒</b-button>
  </b-tooltip>
  <b-tooltip content="点击显示" trigger="click">
    <b-button>点击显示</b-button>
  </b-tooltip>
  <b-tooltip content="关闭和隐藏提示" :disabled="disabled">
    <b-button @click="disabled = !disabled">{{ disabled ? '关闭提示' : '开启提示' }}</b-button>
  </b-tooltip>
</template>

<script setup lang="ts">
import { ref } from 'vue'
const disabled = ref(false)
</script>

Props

参数说明类型可选值默认值
v-model:visible状态是否可见Booleanfalse
content显示的内容String
placement提示框出现的位置Stringtop/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end
disabled是否禁用提示框Booleanfalse
transition自定义渐变动画Stringfade-in-linear
show-arrow是否显示箭头Booleantrue
theme主题Stringdark 或 lightdark
open-delay延迟出现,单位毫秒Number0
hide-delay延迟消失,单位毫秒Number0
offset出现位置的偏移量Number12
appendToBody是否将弹层放置于 body 内Booleantrue