JavaScript 如何计算文本的行数的实现

这篇文章主要介绍了JavaScript 如何计算文本的行数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

需求:根据行数决定是否限制展开和收起。

JavaScript 如何计算文本的行数的实现

思路:用2个块统计行高,一个不加高度限制用来统计行数(css隐藏),一个加高度限制用来显示(加高度限制会导致统计行数不准)

要想知道文本的行数,那就需要知道文本的总高度和每一行的高度,总高度除以行高就是行数。当然总高度的计算必须是文字所在的 DOM 没有对高度的限制,随着文本的增加 DOM 要随之变高才行;最后还要考虑 DOM 的样式padding和margin对高度的影响。这样一来我们就可以计算出文本的行数了。总结一下我们需要如下几步:

克隆文本所在的 DOM;

清除 DOM 的高度限制;

获取 DOM 的行高和高度;

计算行数;

去除克隆的 DOM。

相关代码

 document.getElementById(“noticeContent”).innerText = str;//展示的块

 document.getElementById(“noticeContent2”).innerText = str;//计算行高的块

 this.$nextTick(() => {

 let noticeDom = document.getElementById(“noticeContent2”);

 console.log(noticeDom);

 let style = window.getComputedStyle(noticeDom, null);

 let row = Math.ceil(

 Number(style.height.replace(“px”, “”)) /

 Number(style.lineHeight.replace(“px”, “”))

 );//总行高 / 每行行高

 console.log(“noticeDom===>”, style.height, style.lineHeight);

 console.log(“rowwwww”, row);

 if (row > 2) {//超过2行则显示展开和收起

 this.showOmit = true;

 this.showOpen = true;

 } else {

 this.showOpen = false;

 }

 });

到此这篇关于JavaScript 如何计算文本的行数的实现的文章就介绍到这了,更多相关JavaScript 计算文本行数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:脚本之家

链接:https://www.jb51.net/article/195571.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/900724.html

(0)
上一篇 2025年1月4日 02:05:02
下一篇 2025年1月4日 02:05:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 对javascript网站渗透测试安全检测漏洞方法

    最近渗透测试工作比较多没有空闲的时间来写文章,今天由我们Sine安全的渗透主管来普及一下javascript的安全测试基础,很多客户想要了解具体js的调用漏洞或提交playload的过程以及是如何拿到最高权限和绕过登录等等执行命令漏洞之类的…

    2025年1月4日
    100
  • 国内三款知名java商城系统浅析:shop++、shopnc、javashop

    在众多商家决定搭建一个独立的网上商城系统时,就开始苦恼,市面上这么多商城系统到底该选哪一个才好呢?我们又如何选到靠谱又实用的商城系统呢? 最近我也在了解商城系统的应用程序,市面上的商城系统颇为混杂,以下是本人针对国内三款知名java商城系统…

    建站经验 2025年1月4日
    100
  • 渗透测试对Java架构网站漏洞检测方法

    近期对平台安全渗透测试中遇到有JAVA+mysql架构的网站,针对此架构我们Sine安全渗透工程师整理了下具体的漏洞检测方法和防护修复方法,很多像执行框架漏洞获取到系统权限,以及跨权限写入木马后门等等操作,希望大家在渗透测试的道路中发现更多…

    2025年1月4日
    100
  • java教程:java基础教程带你入门

    Java作为一种面向对象的编辑语言一直在世界编程语言排行榜中稳居第一名。因此想要成为一名优秀的互联网工作者,java的应用学习是基本,零基础或基础薄弱的人下边这套java教程会让你迅速入门。 java教程的基础教程首先是java的简介,在第…

    编程技术 2025年1月4日
    100
  • js实现特别简单的钟表效果

    这篇文章主要为大家详细介绍了js实现特别简单的钟表效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了js实现钟表效果的具体代码,供大家参考,具体内容如下                *…

    2025年1月4日
    200
  • JavaScript实现串行请求的示例代码

    这篇文章主要介绍了JavaScript实现串行请求的示例代码,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下 使用async和await var fn = async function(promiseArr) { fo…

    编程技术 2025年1月4日
    200
  • 浅谈JavaScript 声明提升

    这篇文章主要介绍了JavaScript 声明提升的相关资料,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下 1 引例及基本原理 在学习JavaScript声明提升之前,我们先看下面这个例子: console.log(a…

    编程技术 2025年1月4日
    200
  • JavaScript正则表达式匹配字符串字面量

    第一次遇到这个问题, 是大概两年前写代码高亮, 从当时的解决方案到现在一共有三代, 嘎嘎. 觉得还是算越来越好的. 第一代: //那个时候自己正则还不算很精通, 也没有(?:…)这种习惯, 是以寻找结束引号为入口写出的这个正则.…

    编程技术 2025年1月4日
    200
  • AJAX实现数据的增删改查操作详解java后台

    这篇文章主要介绍了AJAX实现数据的增删改查操作,结合实例形式详细分析了ajax结合java后台实现数据库增删改查相关操作技巧,需要的朋友可以参考下 本文实例讲述了AJAX实现数据的增删改查操作。分享给大家供大家参考,具体如下: 主页:in…

    2025年1月4日
    200
  • js+canvas实现画板功能

    这篇文章主要为大家详细介绍了js+canvas实现画板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了js+canvas实现画板功能的具体代码,供大家参考,具体内容如下 1.实现了画图…

    编程技术 2025年1月4日
    200

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信