专栏名称: 前端Q
我是winty,专注分享前端知识和各类前端资源,乐于分享各种有趣的事,关注我,一起做个有趣的人~
目录
今天看啥  ›  专栏  ›  前端Q

js如何实现当文本内容过长时,中间显示省略号...,两端正常展示

前端Q  · 公众号  ·  · 2024-12-25 09:15
    

主要观点总结

文章介绍了一个前端功能,即实现一个标题内容过长时,前后端展示完整内容,中间省略的效果。文章涵盖了实现思路、代码示例和相关知识点。

关键观点总结

关键观点1: 实现思路

获取标题盒子的真实宽度,通过计算文本的实际宽度与盒子宽度的对比,来判断文本是否超出盒子宽度,并计算截取位置的索引。

关键观点2: 代码实现

包括HTML结构、CSS样式和JavaScript代码。JavaScript代码中涵盖了获取盒子宽度、检测dom元素宽度、计算文本长度、设置文本内容等功能的实现。

关键观点3: 相关知识

介绍了判断文字被溢出隐藏的几种方法,包括使用Element-plus框架、创建隐藏的div模拟实际宽度、使用canvas的measureText方法和TextMetrics对象、使用css实现等。还介绍了JS获取字符串长度的几种常用方法,包括通过charCodeAt判断字符编码和将双字节字符替换成"aa"的做法。


文章预览

点击上方  前端Q ,关注公众号 回复 加群 ,加入前端Q技术交流群 前一阵做需求时,有个小功能实现起来废了点脑细胞,觉得可以记录一下。 产品的具体诉求是:用户点击按钮进入详情页面,详情页内的卡片标题内容过长时,标题的前后两端正常展示,中间用省略号...表示,并且鼠标悬浮后,展示全部内容。 关于鼠标悬浮展示全部内容的代码就不放在这里了,本文主要写关于实现中间省略号...的代码。 实现思路 获取标题盒子的真实宽度, 我这里用的是clientWidth; 获取文本内容所占的实际宽度; 根据文字的大小计算出每个文字所占的宽度; 判断文本内容的实际宽度是否超出了标题盒子的宽度; 通过文字所占的宽度累加之和与标题盒子的宽度做对比,计算出要截取位置的索引; 同理,文本尾部的内容需要翻转一下,然后计算索引,截取完之后再 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览