Javascript $(窗口).resize()和$(文档).ready()计算不同的值

Javascript $(窗口).resize()和$(文档).ready()计算不同的值,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试使用jQuery使文本自适应。这是小提琴: 您可以看到一个div,其中包含一些文本。div没有指定的高度,它的高度是根据文本高度和顶部和底部10%的填充来计算的 我想字体大小是响应。比方说,div的原始大小是124px,字体大小是50px,所以我想保持这个比例。这意味着我需要知道,百分之五十是124。大约是40.32(50/124*100)。这意味着我需要将字体大小设置为value,等于容器高度/100*40.32。以下是我使用的代码: function foo(){ var con

我正在尝试使用jQuery使文本自适应。这是小提琴:

您可以看到一个div,其中包含一些文本。div没有指定的高度,它的高度是根据文本高度和顶部和底部10%的填充来计算的

我想字体大小是响应。比方说,div的原始大小是124px,字体大小是50px,所以我想保持这个比例。这意味着我需要知道,百分之五十是124。大约是40.32(50/124*100)。这意味着我需要将字体大小设置为value,等于容器高度/100*40.32。以下是我使用的代码:

function foo(){
var container = $(".box");
var containerHeight = $(".box").innerHeight().toFixed();
var neededSize = (containerHeight/100*40.32).toFixed();

container.css("font-size", neededSize + "px");
}

$(window).resize(foo);
$(document).ready(foo);

这似乎是工作,但只有当我调整页面大小。当我重新加载它时,有一些不同的值。为什么同一个函数在调整大小和加载时会给出不同的值?

我尝试过这个函数,它对我很有效,两个函数都给了我相同的结果。试试这个
container.css(“font-size”:neededSize+“px”)

我观察到的尺寸变化是因为:

一,。当您刚重新加载时。该函数仅运行一次

2.但当您调整大小时,该函数会运行两次并更改字体大小,因为再次计算是基于新高度进行的。 主要是在调整大小时,它计算错误
innerheight

见此:

function foo(jQuery ){
    var container = $(".box");
    var containerHeight = $(".box").innerHeight(true).toFixed(2);
    var neededSize = (containerHeight/100*40.32).toFixed(2);
alert(containerHeight );
    container.css("font-size", neededSize + "px");
}

$(window).resize(foo);
$(document).ready(foo);
调整大小的方法不可靠。
调整大小处理程序中的代码不应依赖于调用处理程序的次数。根据具体实现,调整大小事件可以在调整大小的过程中连续发送(这是基于Internet Explorer和WebKit的浏览器(如Safari和Chrome)中的典型行为),或者在调整大小操作结束时仅发送一次(其他一些浏览器(如Opera)中的典型行为).

我在控制台中看到一个错误。它对我来说工作正常。如果您想要响应文本,您可以尝试使用em而不是pxWell,我尝试使用您的代码并看到“TypeError:$(…).innerHeight(…).toFixed不是一个函数”。它应该这样做吗?选择jquery文件,例如:jquery 1.6.4