el-tooltip自动一直显示,不用操作鼠标
时间: 2023-07-21 19:32:14 浏览: 80
如果要让`el-tooltip`自动一直显示,不需要操作鼠标,可以通过编写自定义指令实现。
示例代码:
```
<template>
<div>
<div v-show-tooltip="'这是提示内容'">这是需要提示的内容</div>
</div>
</template>
<script>
export default {
directives: {
showTooltip: {
inserted(el, binding) {
el.$tooltip = document.createElement('div')
el.$tooltip.innerHTML = binding.value
el.$tooltip.className = 'el-tooltip__popper is-dark'
el.$tooltip.style.position = 'fixed'
el.$tooltip.style.top = '0'
el.$tooltip.style.left = '0'
el.$tooltip.style.zIndex = '99999'
el.$tooltip.style.display = 'none'
document.body.appendChild(el.$tooltip)
el.addEventListener('mouseenter', () => {
el.$tooltip.style.display = 'block'
})
el.addEventListener('mouseleave', () => {
el.$tooltip.style.display = 'none'
})
},
unbind(el) {
document.body.removeChild(el.$tooltip)
delete el.$tooltip
}
}
}
}
</script>
```
在上面的代码中,我们编写了一个名为`showTooltip`的自定义指令。当我们在模板中使用`v-show-tooltip`指令并传入提示内容时,会自动创建一个`el-tooltip`,并且该提示框会自动显示并保持显示状态,直到页面关闭或者删除该`el-tooltip`为止。
该自定义指令实现的原理是,在鼠标移入指令所在的元素时,会创建一个`el-tooltip`并将其添加到页面中,同时设置其样式和位置,使其覆盖在所在元素的上方,从而达到提示的效果。当鼠标移出指令所在的元素时,将删除该`el-tooltip`元素,从而结束提示的过程。
阅读全文