cloud-ui.vusion
Version:
Vusion Cloud UI
309 lines (276 loc) • 9.5 kB
Markdown
### 基本用法
将需要弹出的内容用`<u-tooltip>`包裹起来,并插入到触发事件的元素中。
也可以直接使用指令的方式。
``` html
<u-linear-layout>
<u-button>
直接插入
<u-tooltip>直接插入<u-link>文本</u-link>或<u-link>HTML</u-link></u-tooltip>
</u-button>
<u-button v-tooltip="'指令中只能插入文本'">指令</u-button>
</u-linear-layout>
```
### 触发方式
使用`trigger`属性设置触发方式。
``` html
<u-linear-layout>
<u-button>
hover(默认)
<u-tooltip trigger="hover">Tooltip</u-tooltip>
</u-button>
<u-button>
click
<u-tooltip trigger="click">Tooltip</u-tooltip>
</u-button>
<u-button>
right-click
<u-tooltip trigger="right-click">Tooltip</u-tooltip>
</u-button>
<u-button>
double-click
<u-tooltip trigger="double-click">Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
```
#### 指令形式
``` html
<u-linear-layout>
<u-button v-tooltip="'Tooltip'">hover(默认)</u-button>
<u-button v-tooltip.click="'Tooltip'">click</u-button>
<u-button v-tooltip.right-click="'Tooltip'">right-click</u-button>
<u-button v-tooltip.double-click="'Tooltip'">double-click</u-button>
</u-linear-layout>
```
#### 手动触发
也可以手动触发工具提示的弹出/关闭:
``` vue
<template>
<u-button @click="opened = !opened">
{{ opened ? '隐藏' : '弹出' }}
<u-tooltip trigger="manual" :opened.sync="opened">Tooltip</u-tooltip>
</u-button>
</template>
<script>
export default {
data() {
return {
opened: false,
};
},
};
</script>
```
### 弹出方位
使用`placement`属性控制弹出方位。
``` html
<u-linear-layout direction="vertical" style="min-width: 300px; max-width: 550px;">
<u-linear-layout justify="center" gap="small">
<u-button>
上左
<u-tooltip placement="top-start">Tooltip</u-tooltip>
</u-button>
<u-button>
上边
<u-tooltip placement="top">Tooltip</u-tooltip>
</u-button>
<u-button>
上右
<u-tooltip placement="top-end">Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
<u-linear-layout direction="vertical" justify="center" style="width: 150px; float: left">
<u-button>
左上
<u-tooltip placement="left-start">Tooltip</u-tooltip>
</u-button>
<u-button>
左边
<u-tooltip placement="left">Tooltip</u-tooltip>
</u-button>
<u-button>
左下
<u-tooltip placement="left-end">Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
<u-linear-layout direction="vertical" justify="center" style="width: 150px; float: right">
<u-button>
右上
<u-tooltip placement="right-start">Tooltip</u-tooltip>
</u-button>
<u-button>
右边
<u-tooltip placement="right">Tooltip</u-tooltip>
</u-button>
<u-button>
右下
<u-tooltip placement="right-end">Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
<u-linear-layout justify="center" gap="small" style="clear: both">
<u-button>
下左
<u-tooltip placement="bottom-start">这是下左的Tooltip这是下左的Tooltip</u-tooltip>
</u-button>
<u-button>
下边
<u-tooltip placement="bottom">Tooltip</u-tooltip>
</u-button>
<u-button>
下右
<u-tooltip placement="bottom-end">Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
</u-linear-layout>
```
#### 指令形式
``` html
<u-linear-layout direction="vertical" style="min-width: 300px; max-width: 550px;">
<u-linear-layout justify="center" gap="small">
<u-button v-tooltip.top-start="'Tooltip'">上左</u-button>
<u-button v-tooltip.top="'Tooltip'">上边</u-button>
<u-button v-tooltip.top-end="'Tooltip'">上右</u-button>
</u-linear-layout>
<u-linear-layout direction="vertical" justify="center" style="width: 150px; float: left">
<u-button v-tooltip.left-start="'Tooltip'">左上</u-button>
<u-button v-tooltip.left="'Tooltip'">左边</u-button>
<u-button v-tooltip.left-end="'Tooltip'">左下</u-button>
</u-linear-layout>
<u-linear-layout direction="vertical" justify="center" style="width: 150px; float: right">
<u-button v-tooltip.right-start="'Tooltip'">右上</u-button>
<u-button v-tooltip.right="'Tooltip'">右边</u-button>
<u-button v-tooltip.right-end="'Tooltip'">右下</u-button>
</u-linear-layout>
<u-linear-layout justify="center" gap="small" style="clear: both">
<u-button v-tooltip.bottom-start="'Tooltip'">下左</u-button>
<u-button v-tooltip.bottom="'Tooltip'">下边</u-button>
<u-button v-tooltip.bottom-end="'Tooltip'">下右</u-button>
</u-linear-layout>
</u-linear-layout>
```
#### 跟随鼠标
开启`follow-cursor`属性可以让弹出层跟随鼠标。也可以传一个数字或对象调整位置偏移。
``` html
<u-linear-layout direction="vertical" style="min-width: 300px; max-width: 550px;">
<u-linear-layout justify="center" gap="small">
<u-button>
上左
<u-tooltip placement="top-start" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
上边
<u-tooltip placement="top" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
上右
<u-tooltip placement="top-end" follow-cursor>Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
<u-linear-layout direction="vertical" justify="center" style="width: 150px; float: left">
<u-button>
左上
<u-tooltip placement="left-start" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
左边
<u-tooltip placement="left" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
左下
<u-tooltip placement="left-end" follow-cursor>Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
<u-linear-layout direction="vertical" justify="center" style="width: 150px; float: right">
<u-button>
右上
<u-tooltip placement="right-start" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
右边
<u-tooltip placement="right" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
右下
<u-tooltip placement="right-end" follow-cursor>Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
<u-linear-layout justify="center" gap="small" style="clear: both">
<u-button>
下左
<u-tooltip placement="bottom-start" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
下边
<u-tooltip placement="bottom" follow-cursor>Tooltip</u-tooltip>
</u-button>
<u-button>
下右
<u-tooltip placement="bottom-end" follow-cursor>Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
</u-linear-layout>
```
#### 显隐延时
使用`hover-delay`属性和`hide-delay`属性控制显隐的延时。
``` html
<u-linear-layout>
<u-button>Hover Delay
<u-tooltip trigger="hover" :hide-delay="300">Tooltip</u-tooltip>
</u-button>
</u-linear-layout>
```
### 禁用状态
给工具提示添加`disabled`属性可以禁止弹出效果,但需要手动设置外层元素的状态。
``` html
<u-button disabled>
disabled
<u-tooltip content="Tooltip" disabled>disabled</u-tooltip>
</u-button>
```
### 设置尺寸
``` vue
<template>
<u-linear-layout>
<u-button>small
<u-tooltip size="small">{{ content }}</u-tooltip>
</u-button>
<u-button>normal
<u-tooltip>{{ content }}</u-tooltip>
</u-button>
<u-button>large
<u-tooltip size="large">{{ content }}</u-tooltip>
</u-button>
<u-button>auto
<u-tooltip size="auto">{{ content }}</u-tooltip>
</u-button>
</u-linear-layout>
</template>
<script>
export default {
data() {
return {
content: '深蓝的天空中挂着一轮金黄的圆月,下面是海边的沙地,都种着一望无际的碧绿的西瓜。其间有一个十一二岁的少年,项带银圈,手捏一柄钢叉,向一匹猹尽力地刺去。那猹却将身一扭,反从他的胯下逃走了。',
};
},
};
</script>
```
#### 指令形式
``` vue
<template>
<u-linear-layout>
<u-button v-tooltip.small="content">small</u-button>
<u-button v-tooltip="content">normal</u-button>
<u-button v-tooltip.large="content">large</u-button>
<u-button v-tooltip.auto="content">auto</u-button>
</u-linear-layout>
</template>
<script>
export default {
data() {
return {
content: '深蓝的天空中挂着一轮金黄的圆月,下面是海边的沙地,都种着一望无际的碧绿的西瓜。其间有一个十一二岁的少年,项带银圈,手捏一柄钢叉,向一匹猹尽力地刺去。那猹却将身一扭,反从他的胯下逃走了。',
};
},
};
</script>
```