element ui解决tooltip延迟显示问题

tooltip默认open-delay是0,导致鼠标快速滑动的时候,会触发N个tooltip,如下图:
在这里插入图片描述
如何让它延迟显示呢,虽然element ui给了属性open-delay,但是我们总不能每写一个tooltip都加一次,这样很麻烦。
有没有全局控制它的方法?
有。

我们引入element ui往往是这么引的:

import ElementUI from 'element-ui';
Vue.use(ElementUI);

让我们来打印一下,ElementUI是啥?
在这里插入图片描述
熟悉不?element ui所有的组件实例都在这儿了。
这时候我们找到tooltip
在这里插入图片描述
找到props里的openDelay,直接在main.js里修改就行了,比如:
ElementUI.Tooltip.props.openDelay.default = 1000
一行代码,全局有效,这时候你在任何页面用tooltip,都会默认延迟1秒显示。

Element UI中,默认情况下,tooltip是在鼠标悬停在元素上后显示的,而不是跟随鼠标移动。如果您需要tooltip跟随鼠标移动,可以使用以下CSS样式: ``` .el-tooltip__popper { pointer-events: none; } .el-tooltip__popper .popper__arrow { position: absolute; margin: 0; width: 0; height: 0; border-style: solid; } .el-tooltip__popper[x-placement^="top"] .popper__arrow { border-width: 8px 8px 0; border-color: #ccc transparent transparent; bottom: -8px; left: 0; margin-top: 0; margin-bottom: 0; } .el-tooltip__popper[x-placement^="bottom"] .popper__arrow { border-width: 0 8px 8px; border-color: transparent transparent #ccc; top: -8px; left: 0; margin-top: 0; margin-bottom: 0; } .el-tooltip__popper[x-placement^="left"] .popper__arrow { border-width: 8px 0 8px 8px; border-color: transparent transparent transparent #ccc; right: -8px; top: 0; margin-left: 0; margin-right: 0; } .el-tooltip__popper[x-placement^="right"] .popper__arrow { border-width: 8px 8px 8px 0; border-color: transparent #ccc transparent transparent; left: -8px; top: 0; margin-left: 0; margin-right: 0; } .el-tooltip__popper[x-placement^="top"], .el-tooltip__popper[x-placement^="bottom"] { display: flex; align-items: center; } .el-tooltip__popper[x-placement^="left"], .el-tooltip__popper[x-placement^="right"] { display: flex; justify-content: center; } .el-tooltip__popper-inner { max-width: 200px; word-break: break-word; text-align: center; background-color: #fff; border-radius: 4px; color: #303133; font-size: 14px; line-height: 1.5; padding: 10px; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); z-index: 2000; position: absolute; } .el-tooltip__popper[x-placement^="top"] .el-tooltip__popper-inner, .el-tooltip__popper[x-placement^="bottom"] .el-tooltip__popper-inner { left: 50%; transform: translateX(-50%); } .el-tooltip__popper[x-placement^="left"] .el-tooltip__popper-inner, .el-tooltip__popper[x-placement^="right"] .el-tooltip__popper-inner { top: 50%; transform: translateY(-50%); } .el-tooltip__popper[x-placement^="top"] .el-tooltip__popper-inner { bottom: calc(100% + 8px); } .el-tooltip__popper[x-placement^="bottom"] .el-tooltip__popper-inner { top: calc(100% + 8px); } .el-tooltip__popper[x-placement^="left"] .el-tooltip__popper-inner { right: calc(100% + 8px); } .el-tooltip__popper[x-placement^="right"] .el-tooltip__popper-inner { left: calc(100% + 8px); } ``` 然后,在使用tooltip的地方,添加以下属性: ``` :popper-options="{ boundariesElement: 'window', gpuAcceleration: false, positionFixed: true }" ``` 这样做会将tooltip的位置固定在页面上,并启用GPU加速以提高性能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值