首页 > 其他分享 >JS如何判断文字被ellipsis了?

JS如何判断文字被ellipsis了?

时间:2023-12-15 09:57:17浏览次数:30  
标签:文字 box const JS ellipsis overflow 文本

在写页面的时候,我们知道想要文本超出宽度后用省略号省略,只需要加上一下的css就行了。

.ellipsis{
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;      
}

如果我们想要当文本被省略的时候,也就是当文本超出指定的宽度后,鼠标悬浮在文本上面才展示popper,应该怎么实现呢?这时候我们可以通过JS来计算。

创建一个block元素来包裹inline元素

这种方法应该是最简单的办法,要点就是外层一定是block元素,内存是inline元素。

<div class="ellipsis box">
  <span class="content">
        有一说一,这件事大家懂得都懂,不懂得,说了你也不明白,不如不说。你们也别来问我怎么了,利益牵扯太大,说了对你们也没什么好处,当不知道就行了,其余的我只能说这里面水很深,牵扯到很多大人物。
  </span>
</div> <style>   .ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .box { border: 1px solid gray; padding: 10px;
  }
</style>

通过上面对css和html做的处理,我们可以实现让box元素里面的文字进行ellipisis,同时由于并没有对span.content进行任何overflow的处理,所以该span的offestWidth还是保持不变。

const checkEllipsis = () => {
  const boxEl = document.querySelector(".box");
  const contentEl = document.querySelector(".box .content");
  const computedStyle = getComputedStyle(boxEl);
  const pLeft = computedStyle.paddingLeft;
  const pRight = computedStyle.paddingRight;
  const horizontalPadding = parseFloat(pLeft) + parseFloat(pRight);
  if (boxEl.clientWidth <= contentEl.offsetWidth + horizontalPadding) {
    console.log("存在省略号");
  } else {
    console.log("容器宽度足够,没有省略号了");
  }
};

通过以上JS的计算,我们就可以知道文本什么时候被ellipsis了。

标签:文字,box,const,JS,ellipsis,overflow,文本
From: https://www.cnblogs.com/coolsboy/p/17902703.html

相关文章

  • json好玩的库
    一、DeepDiff DeepDiff是一个Python库,用于比较Python对象的深度差异。能够比较各种数据类型,包括列表、元组、字典、集合、字符串、整数、浮点数等,并给出它们之间的差异。DeepDiff是提供一种简单且易于理解的方式来比较Python对象的差异。安装:pipinstalldeepdiff==6.7.1......
  • 【misc】[西湖论剑 2022]mp3 --js代码,mp3隐写,lsb隐写
    附件下载下来是一个mp3文件,我这里是先试了一下MP3Stego对mp3进行空密码解密发现得到了一个txt,貌似像一个key然后kali中foremost一下mp3,发现得到一张png图片,然后再zsteg查看这张图片‘发现有zip文件,提取出来试一下然后用一开始得到的key可以解密这个加密的压缩包,得到一段加......
  • python: json
     fromtypingimportListimportjsonclassStudent(object):def__init__(self,first_name:str,last_name:str):self.first_name=first_nameself.last_name=last_name@propertydefFirstNmae(self):returnself.f......
  • quickjs C功能扩展的四种写法
    一、前言 茴香豆的“茴”字有多少种写法?这篇博客不是为了炫技,是JS就是这么多种情况。比如C语言,就只能通过函数调用,没有类的概念。比如Java,就只能通过类、对象的方式。不能单独创建函数。哪怕main函数也要包装成一个class。而JS,即可以提供函数,也可以提供类。在ES5之前,JS......
  • 分享一款基于jsplumb.js的二开工作流绘制工具
    lazyflow-modeler介绍基于jsplumb二开的模型绘制工具,jquery版,易拓展软件架构jsplumb+jquery+bootstrap安装教程1.直接访问drawer.html使用说明1.约定了上下左右4个端点2.允许回连3.拒绝自连4.无nodejs依赖5.本人非前端开发人员,js规范问题请无视giteehttps://gitee.com/fing......
  • 在 JMeter 中使用 JSON 提取器提取特定条件下的值
    当你需要在JMeter中对接收到的JSON响应进行处理时,JSON提取器是一个非常有用的工具。在本文中,我们将讨论如何使用JSON提取器来提取特定条件下的值,以满足你的需求。问题描述假设你收到了以下JSON格式的响应结果:{"flag":"success","data":{"list":......
  • js实现深拷贝复制的方法
    utils/deepCopy.jsexportdefaultfunctiondeepCopy(obj){//深拷贝方法if(typeofobj!=='object'||obj===null){ returnobj;}letcopy;if(objinstanceofArray){ copy=[]; for(leti=0;i<obj.length;i++){ copy[i]=d......
  • 实现XML与JSON转换,实测这个方法最便捷
    XML和JSON是当今最常用的两种数据格式,在数据交换和存储领域占有重要地位。XML以其树状结构和可扩展性被广泛使用,而JSON则以其轻量级和易读性受到开发者的青睐。有时候,为了更好地利用它们的优点解决数据共享、数据处理和数据存储等问题,我们需要将这两种格式进行转换。本文将介绍如......
  • 记录--js小练习(弹幕、 电梯导航、 倒计时、 随机点名、 购物放大镜)
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助DOM小练习弹幕电梯导航倒计时随机点名购物放大镜1.弹幕效果预览功能:输入弹幕内容,按下回车显示一条弹幕(弹幕颜色、字体随机生成)思路:设置按钮抬起事件,在事件中判断如果按下的是回车键则将输入框中替换掉......
  • React Native package.json 控制App的版本号
    原文:https://blog.csdn.net/gu1920948999/article/details/117984844package.json"version":"1.0.0",android配置android/app/build.gradleimportgroovy.json.JsonSlurper.../***获取版本号*/defgetAppVersion(){definputFile=new......