当前位置: 首页 > news >正文

TS辅助函数:计算一组数据显示时的最大宽度。

/** * 使用span标签包裹内容,计算文本宽度 * @param text 要计算的文本 * @param customCssText 自定义CSS样式 * @returns 文本的像素宽度 */ // 更简单的版本:直接拼接 CSS 文本(性能更好) export function getTextWidth(text: string, customCssText: string = ""): number { if (!text) return 0; const span = document.createElement("span"); span.textContent = text; // 构建最终的 CSS 文本 const defaultCssText = ` position: absolute; visibility: hidden; white-space: nowrap; font-family: inherit; font-size: inherit; font-weight: inherit; letter-spacing: inherit; padding: 0; margin: 0; border: 0; box-sizing: border-box; `; // 合并样式:自定义样式放在后面,以便覆盖默认样式 span.style.cssText = defaultCssText + (customCssText ? customCssText : ""); document.body.appendChild(span); const width = span.offsetWidth; document.body.removeChild(span); return width; } /** * 遍历数据获取最大宽度 * @param data 需要计算的数据数组 * @param minWidth 最小宽度,默认60px * @param customCssText 自定义CSS样式 * @returns 最大宽度 */ export function getMaxLength( data: (string | number | null | undefined)[], minWidth: number = 60, customCssText: string = "" ): number { if (!data || data.length === 0) return minWidth; const maxWidth = data.reduce((acc: number, item) => { if (item !== null && item !== undefined) { const text = String(item); const calcLen = getTextWidth(text, customCssText); if (acc < calcLen) { acc = calcLen; } } return acc; }, 0); return Math.max(maxWidth, minWidth); }
http://www.jsqmd.com/news/721917/

相关文章:

  • 硅基文明宣言:软件测试工程师的碳基尊严守卫之战
  • 在Debian开发板上搞定TDengine 3.0.2.6服务器安装,Windows客户端+DBeaver连接保姆级教程
  • 韩国股票实时数据 KOSPI(主板)和 KOSDAQ(创业板)的实时行情、K 线及指数数据
  • AI 热点资讯日报
  • 2026 年 4 月 28 日,OpenAI 向 AWS 平台开放前沿模型,企业客户调用更便捷!
  • 2026年q2深圳网络推广效果品牌排行实测对比:深圳靠谱的推广平台,深圳ai优化服务,排行一览! - 优质品牌商家
  • 2026年终极指南:如何使用BiliTools轻松下载B站视频和番剧资源
  • AI伦理官2026认证路线:软件测试从业者的专业转型指南
  • 2026年国内高性价比活动板房厂家TOP5盘点 - 优质品牌商家
  • SQL 入门 12:SQL 视图:创建、修改与可更新视图
  • Qwen3-4B-Thinking-Gemini-Distill实际效果:多轮追问中上下文保持与推理一致性验证
  • DHCP中继不止于‘中继’:从报文抓包分析广播变单播的全过程(Wireshark实战)
  • DownKyi哔哩下载姬:5步掌握B站视频下载的终极解决方案
  • 2025届学术党必备的六大AI科研平台推荐榜单
  • 2025届学术党必备的六大AI辅助写作助手推荐
  • BepInEx 6.0.0版本在Unity游戏中的稳定性问题如何解决?深度技术解析
  • Proteus 8.9 仿真入门:手把手教你搭建第一个运放电路(附避坑指南)
  • 接口/内部类/
  • Qianfan-OCR批量处理工具开发:基于Python GUI的桌面应用
  • 别再死记硬背参数!深入理解OpenCV透视变换:从getPerspectiveTransform到warpPerspective的完整流程拆解
  • 量子测试工程师入门地图:软件测试从业者的专业转型指南
  • 手把手教你用Verilog给FPGA的0.96寸OLED屏画个贪吃蛇(附完整工程源码)
  • 2026年四川中小型犬狗粮选型:四川无谷低敏狗粮,四川狗主粮,四川狗狗换粮,四川狗粮,四川通用型狗粮,优选指南! - 优质品牌商家
  • XXL-JOB路由策略选哪个?实战避坑指南:从FIRST到SHARDING_BROADCAST的保姆级选择教程
  • 移动应用开发手册11:架构设计——不要一天一个想法
  • DWMBlurGlass:5分钟让你的Windows标题栏变身高端毛玻璃特效
  • Wan2.2-TI2V-5B终极指南:本地部署高效视频生成AI完整攻略
  • 一个临床试验项目是如何运转的?从PI、Sub-I到CRA、CRC的角色分工全解析
  • 新疆口碑最好的旅行社 正规靠谱榜单 游客真实好评精选 - 户外密码
  • 2025最权威的六大AI科研助手横评