[英]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.