当我尝试使用纯CSS进行简单转换时,一切正常。
但是,当我尝试调用单击链接时会修饰CSS的javascript函数时,没有过渡。我想淡入灰色层。
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,有人知道任何解决方案吗?
最佳答案
display: none
元素不会过渡,并且在设置其他样式之前尚未插入display: block
。有这样的骇客骇客:
setTimeout(function() {
grey.style.opacity = "1";
}, 0);
但我只是将
width
设置为0
而不是设置display
,然后将其放回100%
。Updated jsFiddle