Javascript DOM 逐渐改变不透明度

标签 javascript html dom setinterval

function fade()
{

    var i = 0;
    var h1 = document.getElementsByTagName("h1")[0];
    h1.style.opacity = 0;
    var k = window.setInterval(function()
    {
        if(i >= 10)
            clearInterval(k);
        else
        {
            h1.style.opacity += i/10;
            i++;
        }
    }     

            , 10);


};

这是我的函数,它应该逐渐增加 h1 标签的不透明度,产生淡入动画效果,但它在第一个循环后停止(当不透明度为 0.1 时)。

如果有一点帮助的话,该函数在我的 body 标记内被称为 onload。

最佳答案

您不想将计算结果添加到不透明度中,您想设置它:

h1.style.opacity = i / 10;

您可能还想稍微减慢间隔时间。不过,YMMV。

完整代码如下:

function fade() {
  var i = 0;
  var h1 = document.getElementsByTagName("h1")[0];
  h1.style.opacity = 0;
  var k = window.setInterval(function() {
    if (i >= 10) {
      clearInterval(k);
    } else {
      h1.style.opacity = i / 10;
      i++;
    }
  }, 100);
};
fade()
<h1>
  My heading
</h1>

关于Javascript DOM 逐渐改变不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47401229/

相关文章:

javascript - 无法使用 datatable.js Ajax 添加行

javascript - 如何在不激活其余部分的情况下使下拉部分上的指示器切换?

html - 元素位置在 Chrome 和 Firefox 之间不同

php - 如何使用 PHP 读取 CSV 文件并在 Table/DIV 中显示内容?

java - 如何替换xml文件中字符串的一部分?

javascript - 如何在渲染前设置 HTML select 元素的选定项?

javascript - .not 具有多个变量的选择器

Date 对象中的 Javascript 语法错误

javascript - 我想每次在 React Native 中重新创建 Flatlist

javascript - "<HTMLImageElement> has no method"似乎存在的对象错误