2014-01-07 67 views
0

這是一個放大,縮小功能。有人可以解釋這個JavaScript代碼

<script> 
function resizeText(multiplier) { 
    if (document.body.style.fontSize == "") { 
    document.body.style.fontSize = "1.0em"; 
    } 
    document.body.style.fontSize = parseFloat(document.body.style.fontSize) + (multiplier * 0.2) + "em"; 
} 
</script> 

我認爲它說,默認字體大小,然後由1.0增加它,然後它由0.2乘說。 縮小部分在哪裏?

+0

它從不說'增加1.0'。它只是說使用1.0作爲默認開始。 – johnnycardy

+0

你能解釋所有英文的代碼嗎?它接下來會先做什麼? – user3091728

回答

0

您將乘數傳遞給函數,該函數可以縮小或取決於它。

1

值傳遞給函數resizeText(multiplier)將決定是否會縮小或放大

對於實施例:。
1.如果乘數值是位置(或大於零)比它會在變焦。
2.如果您的乘數值爲負值(或小於零),則會縮小。

在您的代碼中,如果您的當前文檔的字體大小定義爲使用該值,那麼它將設置爲默認值1.0em

如果乘數值爲正值,則此代碼(multiplier * 0.2)會給出肯定結果並添加到您當前的字體大小。
如果乘數值爲負,此代碼(multiplier * 0.2)會給出負面結果,並從您當前的字體大小中減去一些值。

2

這是一個「放大鏡」功能,您可以傳遞一個數字,以增加當前文檔的實際document.body.style.fontSize

它rapresents:

的字體大小CSS屬性指定字體的大小 - 專門從字體字形的所需高度。因爲設置 字體大小可能會改變其他項目的大小,因爲它是用於計算em和ex長度單位的值的 。

演示:http://jsfiddle.net/IrvinDominin/QytU3/

0

您通過這個功能resizetext(乘數)乘數乘數這裏是作爲功能paramer。

,並在第二行,你檢查的條件

,例如:

  1. 如果您的倍數值大於它會在變焦位置(或大於零)
  2. 如果您乘數值爲負數(或小於零)比縮小。

document.body.style.fontSize = parseFloat(document.body.style.fontSize)+(multiplier * 0.2)+「em」;

並且在這一行首先你要解析浮點數的字體大小,然後乘以乘數參數0.2em然後給document.body.style.fontSize賦值。

1

需要一個參數「乘數」

如果當前字體大小是空白/空它被設置爲「1.0em」

設置大小爲[浮動電流大小的點值,條帶化脫「em」] +參數乘以0.2並將「em」追加到最後。

如果未設置當前尺寸且參數爲5,則字體將變爲「2.0em」
如果當前尺寸爲「2.0em」且參數爲-1,則該字體將變爲「1.8em 「

+0

非常感謝你! – user3091728

0

如果您要更改字體大小,您需要知道字體大小。

不幸的是,有時我們有空字符串表示的默認值。但是,因爲我們知道,默認值可以表示爲1.0em,這是很容易處理:

if (document.body.style.fontSize == "") { 
    document.body.style.fontSize = "1.0em"; 
} 

如果我們有一個空字符串,我們將使用1.0em這裏,因爲這意味着同樣的事情,但給我們我們可以合作的一個數字。

現在,我們需要獲得數:

parseFloat(document.body.style.fontSize) 

注意,這並不一定是1.0。如果我們開始使用空字符串,它會,但如果已經有一個值,那麼它可能是16px,0.5in,或其他。

現在我們需要改變這個數字,從而改變文檔的字體大小:

+ (multiplier * 0.2) 

然後我們做多少回成數,單位:

+ "em" 

所以,例如如果我們用5進行了調用,並且沒有設置值,則結果爲1.0 + (5 * 0.2) = 1.0 + 1.0 = 2.0。如果我們再用-3調用,結果將會是2.0 + (+3 * 0.2) = 2.0 + -0.6 = 1.4等等。

假設「em」結束字體大小,代碼存在一個小問題。如果這是影響該值的唯一代碼(很可能是這樣),那麼沒關係,但如果您必須與可能設置該代碼的其他代碼進行交互,那麼您需要檢查該單元並重新應用該單元,以便例如16px被加倍會導致32px而不是32em,依此類推。

相關問題