[英]Increase/Decrease Font Size Script - How Add Default Text Size Function?
是否有人知道如何修改以下腳本,以便除了當前的兩個函數(changeFontSize(id,true); //增加字體大小-changeFontSize(id); //減小大小)外,我可以添加第三個字體大小將重置為默認設置的功能?
謝謝克里斯
腳本
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; //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";
}
};
您將需要將原始字體大小(假設不是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
,您的代碼才有效。
接受所做的事情,您可以做的是,與其使用doIncreaseSize作為布爾值,還可以調用該變量操作並執行
...
if (action == 'sub') {
unit = -unit;
}
newVal = currentSize - unit;
if (action == 'def') {
newVal = some_default_value;
}
...
但是這里真正的問題是,為什么首先要這樣做? 僅設置該值而不是增大和減小可能會容易得多,除非您計划創建一個供用戶單擊以增大或減小網頁的文本大小的按鈕。 但是就像在評論中發布的那樣,可以直接在瀏覽器中完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.