用js控制显示的文本字数,多出的用省略号显示

本文介绍如何利用JavaScript实现文本字数控制,当超过限制时,多余部分用省略号显示。核心方法是通过计算限制字符长度,动态创建span元素并实时监测其长度,一旦超过限制则截取相应字符串。
摘要由CSDN通过智能技术生成

前言(日常废话

今天没有废话,直接上代码。

目录

正文

实现效果图

本文主要描述了如何利用js来实现下列效果图
效果图

核心方法代码

实现方法的原理主要是:先计算出限制字符个数的长度,然后生成一个span元素动态装填内容并实时计算span的长度,当span长度达到或超出限定长度时,返回此时span内的字符串。

// 返回规定汉字个数的子字符串(str为初始字符串,num为需要限制的汉字个数,body为span临时添加的父元素,fontSize为span的字体大小)
function returnTitleStringFn(str, num, body, fontSize) {
   
     // 生成一个span用于计算宽度
     var spanX = document.createElement("span");
     spanX.style.fontSize = fontSize + "px";
     spanX.style.whiteSpace = "nowrap";
     spanX.style.display = "none";
     // 判断传进来的是id还是class或者是标签名
     if (body[0] == "#") {
    //id
         body = document.getElementById(body.substring(1));
     } else if (body[0] == ".") {
    //class
         body = document.getElementsByClassName(body.substring(1))[0];
     } else {
    //标签
         body = document.getElementsByTagName(body)[0];
     }
     body.appendChild(spanX);
     // 定义一个空字符串用于存储新生成的字符串
     var newstring = "";
     // 传入汉字字数的长度(即限制的长度)
     var matchLength = "";
     // 循环填充然后计算出限定的最大长度
     for (var i = 0; i < num; i++) {
   
         newstring += "一"
     }
     spanX.innerText = newstring;
     // 存储一个限定最大宽度
     matchLength = getWidth(spanX);
     // 将新生成的字符串置空用于放置准备传出去的字符串
     newstring = "";
     // 循环往字符串中填充并计算宽度,令最终内容不超过限定最大宽度
     for (var i = 0; i < str.length; i++) {
   
         newstring += str[i];
         spanX.innerText = newstring;
         if 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值