美文网首页
基于jQuery计算测量字符串不同字体的宽度值

基于jQuery计算测量字符串不同字体的宽度值

作者: 一只小小小bunny | 来源:发表于2022-08-24 20:46 被阅读0次

需求分析:

用于文字排版布局等相关的计算,可扩展添加设置文字加粗倾斜等属性。

(说明:验证此宽度可基于微软office2016的word,视图大小放大至400%,字体五号,设置为只用于西文,字符间距控制为不压缩....)

效果

image.png

代码

<!DOCTYPE html>
<html>

<head>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>

<body>

    <div id='labelText'
        style='color:black;line-height:1.2;white-space:nowrap;top:300px;left:10px;position:fixed;display:block;visibility:visible;'>
    </div>

    <div id='labelText' style="margin-top: 30px;margin-left: 20px;">
        <p style="color: red;">第一步:请先输入要测试的字体类型名称<span style="color: black;">(例如:微软雅黑、宋体、行楷、华文彩云等)</span>
            <br />
            <span style="color: green;">第二步:再点击运行(Run)</span>
            <br />
            <span style="color: blue;">第三步:在控制台查看输出的宽度值
            </span>
        </p>
        <input id="font-type" type="text" value="" style="width: 30vw;height:5vh" placeholder="请输入要测试的字体类型名称" />
        <button id="run">运行(Run)</button>
    </div>

    <div id="labelData" style="width:50%;height:auto ;margin-top: 50px;">
    </div>

    <script>
        const fontArrData = [
            'hellohellohellohellohe',
            '你好呀你好呀你好呀你好呀',
            '$$$$$$$$$$$$$$$$$$$$$$',
            'FFFFFFFFFFFFFFFFFFFFFF',
            'GGGGGGGGGGGGGGGGGGGGGG',
            'HHHHHHHHHHHHHHHHHHHHHH']

        // 获取输入的值
        $(function () {
            $("button").click(function () {
                var value = $('input').val()
                console.log("当前输入的字体类型是:" + `${value}`);

                // 遍历数组
                let arr = []
                for (let i = 0; i < fontArrData.length; i++) {
                    var str = []
                    str = fontArrData[i]
                    str = str.substring(0, str.length - 2);//截取字符串

                    console.log(str.length, "length", str)

                    $("#labelText").css({
                        "font-size": "14px",
                        "font-family": `${value}`
                    }).html(str);

                    // 计算每一项的宽度
                    var width = $("#labelText").width() * 4;
                    // 将每一项宽度push到一个空数组并取用四舍五入取整值
                    arr.push(width.toFixed())
                }
                // 输出计算后的宽度的数组对象
                $("#labelData").html("默认宽度=" + `[${arr},]`);
                console.log("默认宽度=" + `[${arr},]`);
            })
        })
    </script>
</body>

</html>

总结:

回顾jQuery的语法,简单实现,并整理为详细笔记说明。

相关文章

网友评论

      本文标题:基于jQuery计算测量字符串不同字体的宽度值

      本文链接:https://www.haomeiwen.com/subject/lnvogrtx.html