使用javascript进行css过渡没有过渡

时间:2013-06-30 23:24:01

标签: javascript css css-transitions transitions

当我尝试使用纯CSS进行简单的转换时,一切正常 但是当我尝试调用一个javascript函数时,在点击链接时修改了CSS,没有转换。我想淡出灰色层。

HTML:

<a href="someImage.jpg" id="test">
    <img src="someImage.jpg" alt="" />
</a>
<section id="grey"> 
</section>

JS:

var grey = document.getElementById("grey");
var link = document.getElementById("test");
link.onclick = function () {
    grey.style.display = "block";
    grey.style.opacity = "1";
    return false;
};

CSS:

section {
    display:none;
    size and position...
    opacity: 0;
    background-color: rgba(0,0,0,0.5);
    transition: opacity 1s .5s;
}

(见http://jsfiddle.net/7zEhx/5/

我正在使用FF22,有没有人知道任何解决方案?

1 个答案:

答案 0 :(得分:4)

display: none元素不会转换,display: block在您设置其他样式之前未启动。有这样可怕的黑客:

setTimeout(function() {
    grey.style.opacity = "1";
}, 0);

但我只是将width设置为0而不是设置display,然后将其放回100%
Updated jsFiddle