123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <template>
- <view class="uni-tooltip">
- <slot></slot>
- <view v-if="content || $slots.content" class="uni-tooltip-popup" :style="initPlacement">
- <slot name="content">
- {{content}}
- </slot>
- </view>
- </view>
- </template>
- <script>
- /**
- * Tooltip 提示文字
- * @description 常用于展示鼠标 hover 时的提示信息。
- * @tutorial https://uniapp.dcloud.io/component/uniui/uni-tooltip
- * @property {String} content 弹出层显示的内容
- * @property {String} placement出现位置, 目前支持:left right top bottom
- */
- export default {
- name: "uni-tooltip",
- data() {
- return {
- };
- },
- methods: {
- },
- computed: {
- initPlacement() {
- let style = {};
- switch (this.placement) {
- case 'left':
- style = {
- top: '50%',
- transform: 'translateY(-50%)',
- right: '100%',
- "margin-right": '10rpx',
- }
- break;
- case 'right':
- style = {
- top: '50%',
- transform: 'translateY(-50%)',
- left: '100%',
- "margin-left": '10rpx',
- }
- break;
- case 'top':
- style = {
- bottom: '100%',
- transform: 'translateX(-50%)',
- left: '50%',
- "margin-bottom": '10rpx',
- }
- break;
- case 'bottom':
- style = {
- top: '100%',
- transform: 'translateX(-50%)',
- left: '50%',
- "margin-top": '10rpx',
- }
- break;
- }
- return style;
- }
- },
- props: {
- content: {
- type: String,
- default: ''
- },
- placement: {
- type: String,
- default: 'left'
- },
- }
- }
- </script>
- <style>
- .uni-tooltip {
- position: relative;
- cursor: pointer;
- display: inline-block;
- }
- .uni-tooltip-popup {
- z-index: 1;
- display: none;
- position: absolute;
- background-color: #333;
- border-radius: 8px;
- color: #fff;
- font-size: 12px;
- text-align: left;
- line-height: 16px;
- padding: 12px;
- overflow: auto;
- }
- .uni-tooltip:hover .uni-tooltip-popup {
- display: block;
- }
- </style>
|