JS实现文字溢出隐藏效果

需求场景

由于项目原因,经常需要使用到canvas来将dom生成为图片供用户保存,但canvas的css属性(例如本文实现的文字溢出隐藏效果)支持并不全面,所有有些功能只能用JS来实现了

实现思路

用JS循环判断填充文本后的元素长度是否超过阈值,如超过就进行调整,缩短一些文本的长度。

遇到的问题

  1. 文本会自动换行,导致元素长度始终符合要求;解决方法:设置css属性white-space: nowrap;来禁止换行。
  2. 使用String.split()将字符串转化为数组的过程中,表情符会出现异常,如下图所示:请添加图片描述
    解决方案是使用Array.from()来进行数组的转化。

最终代码

const box = document.querySelector('em'), // 需要实现此效果的元素
    text = '😄😄😄😄😄😄😄',
    maxWidth = 100; // 最大的元素长度

box.innerText = text;

// 实现溢出隐藏
let textArr = Array.from(text);
while (box.offsetWidth > maxWidth) {
    text.pop();
    box.innerText = textArr.join('') + '...';
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/704717.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NSS题目练习9

[极客大挑战 2020]welcome 界面打开后一片空白,查看题目描述,翻译过来是 1.除了GET请求方法,还有一种常见的请求方法… 2.学习一些关于sha1和array的知识。 3.更仔细地检查phpinfo,你会发现标志在哪里。 补充: sh…

基于MATLAB仿真的BCC卷积码维特比译码算法

🧑🏻个人简介:具有3年工作经验,擅长通信算法的MATLAB仿真和FPGA实现。代码事宜,私信博主,程序定制、设计指导。 🚀基于MATLAB仿真的BCC卷积码维特比译码算法 目录 🚀1.BCC卷积码概…

WebGIS开发:你还在纠结的10大问题合集!

问题1:GIS开发到底是学Java还是Python? Java是后端语言,Python更重数据分析和算法。 假设通常说的GIS开发是指Webgis,Web就是指网页端,所以我们说的GIS开发大部分情况下是指网页端的地图可视化开发。 GIS开发需要学…

AI预测福彩3D采取888=3策略+和值012路或胆码测试6月13日新模型预测第3弹

今天咱们继续验证新模型的8码定位3,目前新模型新算法已连续命中2次。咱们重点是预测8码定位3+和值012胆码。有些朋友看到我最近两篇文章没有给大家提供缩水后的预测详情,在这里解释下:其实我每篇文章中既有8码定位,也有…

113个大自然声音助眠纯音乐白噪音数据包

今天这一个数据包内置很多简单好听助眠纯音乐歌曲素材,可以帮助用户更好进行大自然声音聆听,带来更多简单舒适睡眠纯音乐环境,享受更多独特音乐听曲放松方式,帮助用户更好听歌助眠,获取更多好的睡眠环境以及质量&#…

​揭秘Grok大模型:未来AI的无限可能

🚀 大家好,今天我们要带大家走进一个充满未来科技感的世界,探秘一款备受瞩目的大模型——Grok! 一、Grok背后的神秘力量 Grok,这个名字可能对于大多数人来说还是陌生的,但它背后的公司——xAI&#xff0c…

总脱发,白发多,解决“头等”大事,可以试试这个~

谁懂啊!想当年发量傲人,如今却成了人间蒲公英。头发走哪掉哪,光1天掉的头发,收集起来都够编个辫子了。 更扎心的,是去理发时 Tony 不再问「打薄吗」,而是小心翼翼地提醒:「咱可以烫一下&#xf…

【NLP】给Transformer降降秩,通过分层选择性降阶提高语言模型的推理能力

【NLP】给Transformer降降秩,通过分层选择性降阶提高语言模型的推理能力 文章目录 【自然语言处理-论文翻译与学习】序1、导论2、相关工作3、相关工具4、方案5、实验5.1 使用 GPT-J 对 CounterFact 数据集进行彻底分析5.1.1 数据集中的哪些事实是通过降阶恢复的&…

MYSQL基础_12_MySQL数据类型精讲

第12章_MySQL数据类型精讲 1. MySQL中的数据类型 类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型BIT日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型CHAR、VARCHAR、TINYTEXT、TE…

红黑树(C++)

文章目录 写在前面1. 红黑树的概念及性质1. 1 红黑树的概念1. 2 红黑树的性质 2. 红黑树节点的定义3. 红黑树的插入3.1 按照二叉搜索的树规则插入新节点3.2 检测新节点插入后,红黑树的性质是否造到破坏 4.红黑树的删除5.红黑树的验证6.源码 写在前面 在上篇文章中&…

10KM无人机高清图传通信模组,低延迟、抗干扰,飞睿智能无线MESH组网模块

随着科技的飞速发展,无人机技术在各个领域的应用越来越广泛。尤其在海上监测、搜索救援、货物运输等场景中,无人机的应用显得尤为重要。然而,要实现无人机在复杂海域环境中的高效通信,高清图传通信模组的作用不可忽视。本文将深入…

2个数据恢复助手,挽救丢失文件的得力帮手

我们的手机中存储了大量珍贵的个人信息和文件,一旦不慎丢失,往往让人心急如焚,想象一下,你正在为一个重要的项目做准备,突然发现手机上的所有数据都消失了,你会怎么办?这时,手机数据…

“全光无线星空”照亮津亚电子智能制造之路

随着第四次工业革命浪潮的到来,智能制造正成为制造业的新常态。工业4.0时代的工厂不再是封闭的制造孤岛,而是通过高度的数字化和网络化,实现生产过程的智能化、自动化和灵活化。在这样的大趋势下,制造业正经历着从传统制造向智能制造的深刻转型,数字化车间和智能化生产线成为推…

Stable Diffusion直接生成IP三视图,一天设计100个?

AI都能直接生成IP形象三视图了! SD生成一个动物Q版IP三视图模型。标准的三视图,并且极富设计感,IP设计师的好帮手,用来辅助创意,建模参考。这个模型主要是动物类,一般不需堆叠复杂的质量词,直接…

深层网络:层数多真的更好吗?

深层网络:层数多真的更好吗? 在深度学习的世界里,"深度"始终是一个热门话题。随着技术的发展,我们有了越来越多的方法来构建更深的神经网络,这似乎暗示着“层数越多,效果越好”。然而&#xff0…

快来!AI绘画Stable Diffusion 3终于开源了,更强的文字渲染和理解力,12G显卡可跑!

大家好,我是设计师阿威 Stable Diffusion 3终于开源了,2B参数的Stable Diffusion 3 Medium模型已经可以在HuggingFace上下载了!如无法科学上网的小伙伴我也准备好了网盘资料,请看文末扫描获取哦! Stable Diffusion 3 …

每日一题——Python实现PAT甲级1116 Come on! Let‘s C(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码点评 时间复杂度分析 空间复杂度分析 总结 我要更强 优化思路 优化…

如何将txt文件导入Python中并进行数据处理

从文本文件中读取数据后,可以清洗和预处理数据,例如去除不必要的字符、处理缺失值等,以便后续的分析和建模。将文本文件导入Python并进行数据处理不仅能够有效地利用数据,还能通过分析和可视化来提取有用的信息和洞察,…

第 5 章:面向生产的 Spring Boot

在 4.1.2 节中,我们介绍了 Spring Boot 的四大核心组成部分,第 4 章主要介绍了其中的起步依赖与自动配置,本章将重点介绍 Spring Boot Actuator,包括如何通过 Actuator 提供的各种端点(endpoint)了解系统的…

使用el-pagination出现样式超出时加上这个属性就能轻松解决

出现的样式问题&#xff1a; 当页码数量过多时&#xff0c;多余的页码会超出我们设定的样式盒子&#xff0c;不美观 代码是这样写的&#xff0c;直接使用的el-pagination <el-paginationlayout"prev, pager, next":total"50"></el-pagination&g…