当前位置: 首页 > 知识库问答 >
问题:

javascript - 给span标签设置了单行文本显示省略号的css,那设置完之后,怎么判断这个某个span是否单行文本溢出?

阴雪风
2023-08-29

给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); };

共有2个答案

巫坚白
2023-08-29

image.png
我直接在官网跑的也是可以的,

<!DOCTYPE html><html><head><style>.overflow-ellipsis {  white-space: nowrap;  overflow: hidden;  text-overflow: ellipsis;  width: 150px;   display: block;  border: 1px solid #ccc;}</style></head><body><span class="overflow-ellipsis">我溢出我溢出我溢出我溢出我溢出我溢出我溢出我溢出我溢出我溢出</span><span class="overflow-ellipsis">我没有</span><script>// 获取所有带有类名 overflow-ellipsis 的 span 元素const list = document.querySelectorAll('.overflow-ellipsis');// 遍历每个 span 元素并检查是否发生了文本溢出list.forEach(span => {  // 核心代码  if (span.scrollWidth > span.clientWidth) {    console.log('溢出的:', span.textContent);  } else {    console.log('没的:', span.textContent);  }});</script></body></html>

image.png

贾骏喆
2023-08-29

https://juejin.cn/post/7262280335978741797#heading-1

 类似资料: