1

我在正在显示的 div 中有一些文档,我希望用户能够调整其中的字体大小。像这样的某种代码:

$("#fontPlusBtn").click(function (){
    $("#textDiv").css("font-size", "*=1.1");
}):

如何在此 div 中按比例调整所有文本节点(大小不同)的大小?

更新:(工作版)

我在这里结合了一些答案,并改变了我之前的答案,所以对于后来遇到这个问题的其他人来说,这就是我所做的:

var upFontSize = function($obj) {
    $obj.children().each(function(index){
        if($(this).children().length > 0){
            upFontSize($(this));
        }else {
            $(this).css({
                "font-size": function(index, value) {
                    return parseFloat(value) * 1.1;
                },
            });
        }
    });
}
4

3 回答 3

2

这是回答您的问题并考虑多种文本大小,并相应地调整它们的大小:

...这是一个工作示例:

http://jsfiddle.net/Xr2gj/44/

js:

$(document).ready(function (){
    $("#fontPlusBtn").click(function (){
        $(".textDiv, .textDiv > *").each( function(index){
            $(this).css( {
                "font-size": function(index, value) {
                    return parseFloat(value) * 1.1;
              }
            });
        });
    });
});

CSS:

#world{
    font-size: 8pt;
}

#solarSystem{
    font-size: 12pt;
}
#galaxy{
    font-size: 14pt;
}

#universe{
    font-size: 16pt;
}

html:

<a id="fontPlusBtn" href="#">
    Click to increase font-size
</a>

<div class="textDiv" id="world">
    Hello World!
</div>

<div class="textDiv" id="solarSystem">
    <p><b>Hello Solar System!</b></p>
</div>

<div class="textDiv" id="galaxy">
    <p>Hello Galaxy!</p>
</div>

<div class="textDiv" id="universe">
    <p><div><b><a href="#">Hello Universe!</a></b></div></p>
</div>

​您可能可以与其他一些答案混合使用,但是这个http://jsfiddle.net/Xr2gj/44/显示它就像您指定的那样工作。

于 2012-07-24T20:40:16.277 回答
1

"As of jQuery 1.6, .css() accepts relative values similar to .animate(). Relative values are a string starting with += or -= to increment or decrement the current value. For example, if an element's padding-left was 10px, .css( "padding-left", "+=15" ) would result in a total padding-left of 25px."
参考

因此,您可以使用将返回实际值的函数回调,然后返回新值。
像下面这样。

  $("#fontPlusBtn").click(function (){
        $("#textDiv > *").css("font-size", function(i, value) {
            return parseInt(value) * 1.1;
        });
    });

演示

于 2012-07-24T20:01:34.473 回答
0

这是示例 - jsFiddle

这是代码:

$("#fontPlusBtn").click(function (){
    var getNr = parseInt($("#textDiv").css("font-size")) * 1.1;
    $(".textDiv").css("font-size", getNr+"px");
});​

问题是,css 中没有任何除法或乘法条件,只有+=pxor -=px。所以你所做的只是从实际元素中获取解析后的整数font-size,然后将其相乘,然后应用它。

于 2012-07-24T19:55:19.843 回答