首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据字数设置字体大小Jquery

问根据字数设置字体大小Jquery
EN

Stack Overflow用户
提问于 2013-02-15 06:44:39
回答 2查看 2.1K关注 0票数 4

我有多篇文章,但它们都需要适合同一空间。字符限制为140个。我要做的是根据段落中的字符调整字体大小。因此,如果段落中的字符较少,我希望字体变大&反之亦然。

我下面的代码似乎不能工作,我想知道是否有人可以帮助我?

现在发生了什么,它似乎是最后一个,因为所有段落的字体大小都是8em :(

非常感谢任何人的帮助&提前谢谢!

代码如下:

代码语言:javascript
复制
    $(function(){
    var $quote = $(".question p");
    var $numWords = $quote.text().split("").length;     
    if (($numWords >= 1) && ($numWords < 20)) {
        $quote.css("font-size", "2.2em");
    }
    else if (($numWords >= 20) && ($numWords < 60)) {
        $quote.css("font-size", "1.8em");
    }
    else if (($numWords >= 60) && ($numWords < 100)) {
        $quote.css("font-size", "1.2em");
    }
    else if (($numWords >= 100) && ($numWords < 140)) {
        $quote.css("font-size", "0.9em");
    }
    else {
        $quote.css("font-size", "0.8em");
    }           
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-15 06:55:03

你的问题是你没有单独对待每个段落:参见http://jsfiddle.net/wkEMK/1/

代码语言:javascript
复制
$(function(){
    $(".question p").each(function () {
        var numChars = $(this).text().length;     
        if ((numChars >= 1) && (numChars < 20)) {
            $(this).css("font-size", "2.2em");
        }
        else if ((numChars >= 20) && (numChars < 60)) {
            $(this).css("font-size", "1.8em");
        }
        else if ((numChars >= 60) && (numChars < 100)) {
            $(this).css("font-size", "1.2em");
        }
        else if ((numChars >= 100) && (numChars < 140)) {
            $(this).css("font-size", "0.9em");
        }
        else {
            $(this).css("font-size", "0.8em");
        }           
    });
});

您的原始代码是获取匹配'.question p‘的所有段落的字符数。例如,如果你有两个段落,一个有10个字符,另一个有20个字符,你的JS会运行一次,总共有30个字符,而不是依次处理每个段落。

票数 5
EN

Stack Overflow用户

发布于 2013-02-15 06:58:19

使用.css函数如下所示。这样,它将根据每个p元素中的字符数更改每个p元素的字体大小

代码语言:javascript
复制
$(function(){         
    $(".question p").css('font-size',function(){
        var $numWords = $(this).text().length; // get length of text for current p element
        if (($numWords >= 1) && ($numWords < 20)) {
            return "2.2em";
        }
        else if (($numWords >= 20) && ($numWords < 60)) {
            return "1.8em";
        }
        else if (($numWords >= 60) && ($numWords < 100)) {
            return "1.2em";
        }
        else if (($numWords >= 100) && ($numWords < 140)) {
            return "0.9em";
        }
        else {
            return "0.8em";
        }           
    });    
});

FIDDLE

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14885452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档