这是我现在有的,但按钮仍然没有调整文本的大小。我将每个按钮的值分别设置为0.1和-0.1,字体大小当前设置为1em。有什么想法吗?
window.onload = startup;
function startup() {
var fontButtons = document.getElementsByClassName("fontsizer");
var i;
alert(fontButtons.length);
for (i = 0; i < fontButtons.length; i++)
fontButtons[i].onclick = function(){resizeText(this)};
}
function resizeText() {
var fontChange;
fontChange = parseFloat(objButton.value);
if (document.body.style.fontSize == "") {
document.body.style.fontSize = "1.0em";
}
var currentFontSize;
alert("changed");
currentFontSize = parseFloat(document.body.style.fontSize);
currentFontSize = currentFontSize+fontChange;
document.body.style.fontSize = "currentFontSize+em"
}
最佳答案
要使用onclick
中的参数调用函数,请将其放入匿名函数中,以便:fontButtons[i].onclick = resizeText(this);
变成:fontButtons[i].onclick = function(){resizeText(this)};
另外,确保在创建startup()
元素之后运行.fontsizer
。例如window.onload = startup;
或类似这样的程序,您可以在以下时间运行:
document.onreadystatechange = function() {
if (document.readyState !== 'complete')
return;
startup();
}
工作小提琴:https://jsfiddle.net/ckn9sLfv/