我試圖精確地將一個字符串適合一定的寬度。這意味着字體大小根據字符串而改變。我現在用下面的函數,使用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'事件,這樣你就可以儘早行事。 –