Javascript:计算div中的可见字符数

2023-12-11

我有一个div其中包含文本(长度为的字符串S)任意长度,但大小固定。超过一定长度(我们称之为L),文本被截断,文本的其余部分不再可见。 (从技术上讲,范围[0,L)可见,范围[L,S)不是)。

我想做的是找到长度L通过仅计算文本visible中的字符数div。任何超出分界点的字符都应被忽略。

我很高兴使用 jQuery 等 3rd 方库(如果这能完成工作)!


这是我为修剪文本而制作的函数:

function getTextThatFits(txt, w, fSize, fName, fWeight) {
    if (fWeight === undefined)
        fWeight = "normal";

    var auxDiv = $("<div>").addClass("auxdiv").css ({
        fontFamily : fName,
        fontSize : parseInt(fSize) + "px",
        position: "absolute",
        height: "auto",
        marginLeft : "-1000px",
        marginTop : "-1000px",
        fontWeight: fWeight,
        width: "auto"
    })
    .appendTo($("body"))
    .html(txt);

    var ww = (auxDiv.width() + 1);
    var str = txt;

    if (ww > w)
    {
        var i = 1, p = 1, u = txt.length, sol = 0;

        while (p <= u)
        {
            i = (p + u) >> 1;
            str = txt.slice(0, i);
            auxDiv.html(str);
            ww = (auxDiv.width() + 1);
            if (ww <= w) {
                sol = i;
                p = i + 1;
            }
            else u = i - 1;
        }

        str = txt.slice(0, sol);
    }
    $(".auxdiv").remove();
    auxDiv.remove();
    return str.length;
}

我使用二分搜索来查找适合特定宽度的文本。 为了使用该函数,您必须像这样调用它:

getTextThatFits(yourText, divWidth, fontSize, fontName, fontWeight=optional)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript:计算div中的可见字符数 的相关文章

随机推荐