vue3实现文本超出鼠标移入的时候文本滚动

文章介绍了如何在鼠标移入时,通过JavaScript和TailwindCSS判断文本长度是否超过容器长度,并在符合条件时添加动画效果。涉及`scrollWidth`、CSS关键帧动画和`.scrollable-text`类的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断文本长度是否大于容器长度

鼠标移入的时候判断,此处使用了tailwindcss,注意一下要设置文本不换行。

 <div
     ref="functionsItems"
     @mouseenter="enterFunctionsItem($event, index)"
          >
           <img class="w-5 h-5" :src="getIcon(item.addition)" />
            <span
              class="whitespace-nowrap"
            >
              {{ item.name }}
            </span>

判断函数

如果大于,则添加动画函数。

const functionsItems = ref([])

function enterFunctionsItem(e, index: number) {
  let width1 = functionsItems.value[index].scrollWidth
  let width2 = functionsItems.value[index].children[1].scrollWidth
  // 减去内间距后对比
  if (width1 - 8 < width2 || width1 - 8 === width2) {
    // 添加class
    functionsItems.value[index].classList.add('scrollable-text')
  }
}

样式

@keyframes scroll {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}

.scrollable-text:hover span {
  overflow: visible;
  white-space: nowrap;
  animation: scroll 3s linear infinite;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值