这是我现在有的,但按钮仍然没有调整文本的大小。我将每个按钮的值分别设置为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/

09-30 17:31
查看更多