给span标签设置了单行文本显示省略号的css,那设置完之后,怎么判断这个某个span是否单行文本溢出?
vue
<a-row>
<a-col
:span="8"
class="address overflow-ellipsis whitespace-nowrap overflow-hidden"
>
<span class="panel-label">地址: </span>
<a-tooltip placement="topLeft" :visible="isOpen">
<template #title>我是溢出的地址溢出的地址</template>
<span @mouseenter="handleMouse($event)" @mouseleave="isOpen = false">{{ item?.value }}</span>
</a-tooltip>
</a-col>
js
const isBeyond = (e: any) => {
const ev = window.event || e
const textRange = (el: any) => {
const textContent = el
const targetW = textContent.getBoundingClientRect().width
const range = document.createRange()
range.setStart(textContent, 0)
range.setEnd(textContent, textContent.childNodes.length)
const rangeWidth = range.getBoundingClientRect().width
return rangeWidth > targetW
}
return !textRange(ev.target)
}
let isOpen = ref(false)
const handleMouse = (e: any) => {
isOpen.value = isBeyond(e);
};
https://juejin.cn/post/7262280335978741797#heading-1