Tooltip 文字提示
常用于展示鼠标 hover 时的提示信息。
基础用法
在这里我们提供 9 种不同方向的展示方式,可以通过以下完整示例来理解,选择你要的效果。
使用content
属性来决定hover
时的提示信息。由placement
属性决定展示效果:placement
属性值为:方向-对齐位置
;四个方向:top
、left
、right
、bottom
;三种对齐位置:start
, end
,默认为空。如placement="left-end"
,则提示信息出现在目标元素的左侧,且提示信息的底部与目标元素的底部对齐。
1 <div class="box"> 2 <div class="top"> 3 <el-tooltip class="item" effect="dark" content="Top Left 提示文字" placement="top-start"> 4 <el-button>上左</el-button> 5 </el-tooltip> 6 <el-tooltip class="item" effect="dark" content="Top Center 提示文字" placement="top"> 7 <el-button>上边</el-button> 8 </el-tooltip> 9 <el-tooltip class="item" effect="dark" content="Top Right 提示文字" placement="top-end"> 10 <el-button>上右</el-button> 11 </el-tooltip> 12 </div> 13 <div class="left"> 14 <el-tooltip class="item" effect="dark" content="Left Top 提示文字" placement="left-start"> 15 <el-button>左上</el-button> 16 </el-tooltip> 17 <el-tooltip class="item" effect="dark" content="Left Center 提示文字" placement="left"> 18 <el-button>左边</el-button> 19 </el-tooltip> 20 <el-tooltip class="item" effect="dark" content="Left Bottom 提示文字" placement="left-end"> 21 <el-button>左下</el-button> 22 </el-tooltip> 23 </div> 24 25 <div class="right"> 26 <el-tooltip class="item" effect="dark" content="Right Top 提示文字" placement="right-start"> 27 <el-button>右上</el-button> 28 </el-tooltip> 29 <el-tooltip class="item" effect="dark" content="Right Center 提示文字" placement="right"> 30 <el-button>右边</el-button> 31 </el-tooltip> 32 <el-tooltip class="item" effect="dark" content="Right Bottom 提示文字" placement="right-end"> 33 <el-button>右下</el-button> 34 </el-tooltip> 35 </div> 36 <div class="bottom"> 37 <el-tooltip class="item" effect="dark" content="Bottom Left 提示文字" placement="bottom-start"> 38 <el-button>下左</el-button> 39 </el-tooltip> 40 <el-tooltip class="item" effect="dark" content="Bottom Center 提示文字" placement="bottom"> 41 <el-button>下边</el-button> 42 </el-tooltip> 43 <el-tooltip class="item" effect="dark" content="Bottom Right 提示文字" placement="bottom-end"> 44 <el-button>下右</el-button> 45 </el-tooltip> 46 </div> 47 </div> 48 49 <style> 50 .box { 51 width: 400px; 52 53 .top { 54 text-align: center; 55 } 56 57 .left { 58 float: left; 59 width: 60px; 60 } 61 62 .right { 63 float: right; 64 width: 60px; 65 } 66 67 .bottom { 68 clear: both; 69 text-align: center; 70 } 71 72 .item { 73 margin: 4px; 74 } 75 76 .left .el-tooltip__popper, 77 .right .el-tooltip__popper { 78 padding: 8px 10px; 79 } 80 } 81 </style>
主题
Tooltip 组件提供了两个不同的主题:dark
和light
。
通过设置effect
属性来改变主题,默认为dark
。
1 <el-tooltip content="Top center" placement="top"> 2 <el-button>Dark</el-button> 3 </el-tooltip> 4 <el-tooltip content="Bottom center" placement="bottom" effect="light"> 5 <el-button>Light</el-button> 6 </el-tooltip>
更多 Content
展示多行文本或者是设置文本内容的格式
用具名 slot 分发content
,替代tooltip
中的content
属性。
1 <el-tooltip placement="top"> 2 <div slot="content">多行信息<br/>第二行信息</div> 3 <el-button>Top center</el-button> 4 </el-tooltip>
高级扩展
除了这些基本设置外,还有一些属性可以让使用者更好的定制自己的效果:
transition
属性可以定制显隐的动画效果,默认为fade-in-linear
。 如果需要关闭 tooltip
功能,disabled
属性可以满足这个需求,它接受一个Boolean
,设置为true
即可。
事实上,这是基于 Vue-popper 的扩展,你可以自定义任意 Vue-popper 中允许定义的字段。 当然 Tooltip 组件实际上十分强大,文末的API文档会做一一说明。
1 <template> 2 <el-tooltip :disabled="disabled" content="点击关闭 tooltip 功能" placement="bottom" effect="light"> 3 <el-button @click="disabled = !disabled">点击{{disabled ? '开启' : '关闭'}} tooltip 功能</el-button> 4 </el-tooltip> 5 </template>
tooltip 内不支持 router-link
组件,请使用 vm.$router.push
代替。
tooltip 内不支持 disabled form 元素,参考MDN,请在 disabled form 元素外层添加一层包裹元素。
¶Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
effect | 默认提供的主题 | String | dark/light | dark |
content | 显示的内容,也可以通过 slot#content 传入 DOM |
String | — | — |
placement | Tooltip 的出现位置 | String | top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end | bottom |
value(v-model) | 状态是否可见 | Boolean | — | false |
disabled | Tooltip 是否可用 | Boolean | — | false |
offset | 出现位置的偏移量 | Number | — | 0 |
transition | 定义渐变动画 | String | — | el-fade-in-linear |
visible-arrow | 是否显示 Tooltip 箭头,更多参数可见Vue-popper | Boolean | — | true |
popper-options | popper.js 的参数 | Object | 参考 popper.js 文档 | { boundariesElement: 'body', gpuAcceleration: false } |
open-delay | 延迟出现,单位毫秒 | Number | — | 0 |
manual | 手动控制模式,设置为 true 后,mouseenter 和 mouseleave 事件将不会生效 | Boolean | — | false |
popper-class | 为 Tooltip 的 popper 添加类名 | String | — | — |
enterable | 鼠标是否可进入到 tooltip 中 | Boolean | — | true |
hide-after | Tooltip 出现后自动隐藏延时,单位毫秒,为 0 则不会自动隐藏 | number | — | 0 |