2009-07-16 119 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; 
} 
... 

但真正的问题是为什么你在干什么这首先呢?设置值而不是增加和减少可能会更容易,除非您打算创建一个按钮,用户可以单击以增大或减小网页的文本大小。但是就像发表评论一样,这可以直接在浏览器中完成。