文字溢出,省略号结尾,动态显示全部文字 (vue3)

<template>模板

<template>
...

<div ref="textRef" data-fulltext="name" :class={ 'is-overflow': isOverflow }>
 {{ name }}
</div>

...
</template>

<script> 模块

<script setup>
import { ref, computed, nextTick } from 'vue'

const textRef = ref()
const isOverflow = computed(async () => {
  await nextTick()
  const { scrollWidth, offsetWidth } = textRef.value
  return scrollWidth > offsetWidth
})
</script> 

<style> 模块

<style lang="scss" scoped>
.text {
  display: inline-block;
  position: relative;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipse;
  white-space: nowrap;

  &:hover::after {
    content: attr(data-fulltext);
    position: absolute;
    padding: 2px;
    top: 100%;
    left: 0;
    z-index: 1;
    border: 1px solid #000000;
    font-size: 16px;
    visibility: hidden;
  }

  .is-overflow {
    &:hover::after {
      visibility: visible;
    }  
  }
}

</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值