使用 JS 动态计算指定文本在 DOM 中所占用的宽度
measureText 方法返回一个关于被测量文本 TextMetrics
对象包含的信息
MDN文档
typescriptconst canvas = document.createElement('canvas')
// 取当前页面所使用的字体
const fontFamily = window.getComputedStyle(document.body).getPropertyValue('font-family')
/**
* 计算文本在 DOM 中占据的宽度
* @param text 文本
* @param fontStyle 字体样式
*/
export const calcTextWidth = (text: string, fontStyle = '14px') => {
const ctx = canvas.getContext('2d')
if (!ctx) return 0
ctx.font = fontStyle + ' ' + fontFamily
const metrics = ctx.measureText(text)
return Math.ceil(metrics.width)
}
javascriptfunction getTextWidth(text, font) {
let span = document.createElement('span');
span.innerText = text;
span.style.font = font || '16px Arial';
span.style.visibility = 'hidden';
document.body.appendChild(span);
let width = span.offsetWidth;
document.body.removeChild(span);
return width;
}
本文作者:yaohuiofe
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!