我试图精确地将一个字符串适合一定的宽度。这意味着字体大小根据字符串而改变。我现在用下面的函数,使用jQuery:在Javascript中测量字符串宽度
function fontResize ()
{
for (var i = $("#date").css("font-size").slice(0, -2); $("#date").width() < $("#clock").width(); i++)
$("#date").css("font-size", i.toString() + "px");
}
的想法是,我在CSS设置字体大小,以可能的最低值。我用这个值初始化循环并用1递增字体大小,直到字符串比包含元素的宽度更宽。这种情况下的字符串是“date”,包含的元素是“clock”。
虽然这个工作,我认为主要的缺点是,字符串必须在宽度可以确定之前先绘制。这意味着在加载主体之前我不能调用这个函数。
如果有人知道更好的方法来做到这一点,请让我知道!谢谢。
感谢您的解释。由于我使用的是背景图片(需要花费相当多的时间来加载),因此我决定如果能够使用图片加载文本(感觉便宜),最好。在“onload”之后放置所有功能似乎已经成功了。如果我理解正确,那么“卸载”后的功能仅在加载整个页面时调用。所以这应该是有道理的。 – Daan
@ KeyMs92:是的,在加载所有资源的时候,load事件在页面加载循环中非常晚的时候被触发。如果这对你来说足够早,那么很好,但如果不是的话,你总是可以创建一个引用背景图像的img'元素(不添加到DOM)并观察它的'load'事件,这样你就可以尽早行事。 –