jQuery - 重置所有字体大小

时间:2017-03-15 01:00:09

标签: javascript jquery

我正在处理一段代码,它会增加单击时的字体大小,减小单击时的字体大小,并在单击时重置字体大小。我通过这种方式将其应用于所有字体:

function convertAndApplyFonts(y)
        {       

                $("body").find("*").each(function(){

                        if(y == 'increase'){

                                $(this).css({"font-size" : parseInt($(this).css("font-size")) + 1});

                        }

                        if(y == 'decrease'){

                                $(this).css({"font-size" : parseInt($(this).css("font-size")) - 1});

                        }

                        if(y == 'reset'){

                                var i = 0;

                                $(this).css({"font-size" : array[i] });

                                i++;

                        }


                });

        }

在我的代码的开头我有一个原始大小的数组:

var array = [];

        $("body").find("*").each(function(){

                array.push($(this).css("font-size"));

        });

我的问题是我在开始时生成的数组,当我在y == reset时循环时与该元素不匹配。

我已经在我的第一个foreach中完成了console.log()并重置了foreach,并且它们的字体大小不匹配......我做错了什么?

我也尝试了以下内容:

$("html").css({"font-size": counter + "em"});

但这没有做任何事。

1 个答案:

答案 0 :(得分:1)

在所有元素中循环使用这样的东西是不对的。

为什么不能使用rem代替px?这对你来说会更容易。浏览器本身。使用rem单位,只需修改html标记(根元素)font-size,所有其他具有字体大小/的元素,就可以在一行代码中达到该行为<{1}}代替rem表示的填充等将自动调整大小。