javascript - 不能多次更改 html 元素的不透明度

标签 javascript css opacity

我想要我的 <div>慢慢变得可见!

这是我的代码:

var Thread = {
    sleep: function(ms) {
        var start = Date.now();

        while (true) {
            var clock = (Date.now() - start);
            if (clock >= ms) break;
        }

    }
};



function anime()
{

    var elem = document.getElementById('tagd');


    document.getElementById('tagd').style.opacity += 0.4;
    console.log(document.getElementById('tagd').style.opacity);

    Thread.sleep(1000);

    document.getElementById('tagd').innerHTML ="<h1>Sometext</h1>";
    console.log("do");
function frame()
    {
            num = 0.1;
            elem.style.opacity += num;

    }


}

它有效,但是当我将其更改为:

var Thread = {
    sleep: function(ms) {
        var start = Date.now();

        while (true) {
            var clock = (Date.now() - start);
            if (clock >= ms) break;
        }

    }
};



function anime()
{

    var elem = document.getElementById('tagd');


    document.getElementById('tagd').style.opacity += 0.4;
    console.log(document.getElementById('tagd').style.opacity);

    Thread.sleep(1000);



document.getElementById('tagd').style.opacity += 0.4;
        console.log(document.getElementById('tagd').style.opacity);


function frame()
    {
            num = 0.1;
            elem.style.opacity += num;

    }


}

或使用 setInterval第二次opacity没有改变! 接缝,我不能多次更改不透明度..

html/css 代码如下:

<html>

<style>
#tagd{
width: 500px;
height: 500px;
background: darkred;
opacity: 0;
}
</style>

<head>
<script src="test.js"></script>
</head>


<body>

<input type="button" onclick="anime()">

<div id="tagd"></div>

</body>

</html>

最佳答案

您可以尝试使用 CSS transitions而不是 JS。 创建两个 CSS 类并使用 JS 更改它们。

例如。 CSS:

#tagd {
    opacity: 0;
}


.visible {
    -webkit-transition: opacity 3s ease-in-out;
    -moz-transition: opacity 3s ease-in-out;
    -ms-transition: opacity 3s ease-in-out;
    -o-transition: opacity 3s ease-in-out;
    opacity: 1!important;
}

JS:

function anime() {
    var element = document.getElementById("tagd");
    element.classList.toggle("visible");
}

关于javascript - 不能多次更改 html 元素的不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56933233/

相关文章:

javascript - Flow Error Out 中的 Webpack 路径

在循环中添加的元素的 jQuery 宽度

css - 带有 rgba 的不透明白色背景在白色背景上显示灰色?

css - Internet Explorer 6 和不透明度

html - 不同于 1 或 0 的 CSS 不透明度在 IE11 中不起作用

javascript - 安全: How '<div id="t">t</div >' is different from ' t'?

javascript - Ember.js:操作冒泡到错误的路线

javascript - jQuery 动画垂直菜单

asp.net - 在 IE7 中使用 ASP.Net、CSS、VS 2008 的奇怪定位行为

javascript - Firefox 中的神秘空白