固定长度下随文字数量增加自动适配字体大小

问题:在一个固定长度的位置(例如标题栏),针对其内容的字数不定的情况下,如何实现总是能展示完整的标题?

解法:

1、定义获取字符串字节数的函数(注意是字节数不是长度)

2、根据字符串字节数调整字体大小(成反比,且可以使用Math.cos,具体根据实际情况来调整)

String.prototype.byteLength = function () {
  let bytesCount = 0;
  for (let i = 0, n = this.length; i < n; i += 1) {
    const c = this.charCodeAt(i);
    if ((c >= 0x0001 && c <= 0x007e) || (c >= 0xff60 && c <= 0xff9f)) {
      bytesCount += 1;
    } else {
      bytesCount += 2;
    }
  }
  return bytesCount;
};

 

posted @ 2020-04-23 17:28  黎明の破晓  阅读(589)  评论(0编辑  收藏  举报