2009-07-16 114 views
0

是否有人知道如何修改下面的腳本,除了兩個當前函數(changeFontSize(id,true); //增加字體大小--changeFontSize(id); //減小大小),我可以添加第三種功能是將字體大小重置爲默認設置?增加/縮小字體大小腳本 - 如何添加默認文字大小功能?

謝謝你,克里斯

SCRIPT

功能changeFontSize(OBJID,doIncreaseSize){// 使用前定義變量,或者他們將成爲全球性的。 VAR currentSize = 0, OBJ =的document.getElementById(OBJID) 的newval = 0, limitMax = 10, limitMin = 0.5, 單元= 0.1;

if(!obj){ 
return false; //Avoids errors if obj isn't found. 
} 
currentSize = parseFloat(obj.style.fontSize); 
if(doIncreaseSize){ 
    unit = -unit; // unit becomes negative. This turns subtractions into addition. 
} 
newVal = currentSize - unit; 
if(limitMax >= newVal && limitMin <= newVal){ 
    obj.style.fontSize = newVal + "em"; 
} 

};

+2

我不確定爲什麼開發人員會這樣做。瀏覽器有這個內置。 Ctrl ++/Ctrl-- – epascarello 2009-07-16 10:21:58

+0

嗨Epascarello, 我知道瀏覽器內置此功能。我網站上的大多數訪問者都是老年人,視力受損。許多人,特別是老年人,不知道瀏覽器是否內置了這種瀏覽器,或者不知道如何使用這種瀏覽器功能。這對這些人來說更容易一些。 – Chris 2009-07-19 17:02:29

回答

1

您需要將原始字體大小(假設它不是1em)保存在某處,例如在對象本身或外部數組中。

事情是這樣的:

function changeFontSize(objId, doIncreaseSize) { 
    var currentSize = 0, obj = document.getElementById(objId), newVal = 0, limitMax = 10, limitMin = 0.5, unit = 0.1; 
    if(!obj){ 
    return false; 
    } 
    currentSize = parseFloat(obj.style.fontSize); 
    if (!obj.originalSize) { obj.originalSize = currentSize; } 
    if(doIncreaseSize){ 
    unit = -unit; 
    } 
    newVal = currentSize - unit; 
    if(limitMax >= newVal && limitMin <= newVal){ 
    obj.style.fontSize = newVal + "em"; 
    } 
    return true; 
} 

function resetDefaultSize(objId) { 
    var obj = document.getElementById(objId); 
    if(!obj){ 
    return false; 
    } 
    if (obj.originalSize) { obj.style.fontSize = obj.originalSize + "em"; } 
    return true; 
} 

通知,如果該元素具有明確em單位定義font-size你的代碼纔有效。

+0

您好STAii先生, 該腳本似乎不起作用。當我點擊增加,減少或重置時(參見下面的html代碼:CHANGE FONT SIZE:INCREASE | DECREASE | RESET)我被帶到一個白色的屏幕上,上面寫着「true」字樣。如果您有機會,請在有機會時請注意JavaScript,我將非常感激。感謝您的時間。 Chris – Chris 2009-07-18 20:56:34

0

以你做什麼,你可以做的是,代替使用doIncreaseSize作爲一個布爾值,你可以改爲調用該變量的動作,做

... 
if (action == 'sub') { 
    unit = -unit; 
} 
newVal = currentSize - unit; 
if (action == 'def') { 
    newVal = some_default_value; 
} 
... 

但真正的問題是爲什麼你在幹什麼這首先呢?設置值而不是增加和減少可能會更容易,除非您打算創建一個按鈕,用戶可以單擊以增大或減小網頁的文本大小。但是就像發表評論一樣,這可以直接在瀏覽器中完成。