类转换时从`display:none`的CSS转换?

前端之家收集整理的这篇文章主要介绍了类转换时从`display:none`的CSS转换?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经开始使用转换来“现代化”网站的感觉。到目前为止,:悬停转换工作伟大。现在我想知道是否可能触发基于其他事情的转换,例如当一个类发生变化时。

这里是相关的CSS:

#myelem {
    opacity: 0;
    display: none;
    transition: opacity 0.4s ease-in,display 0.4s step-end;
    -ms-transition: opacity 0.4s ease-in,display 0.4s step-end;
    -moz-transition: opacity 0.4s ease-in,display 0.4s step-end;
    -webkit-transition: opacity 0.4s ease-in,display 0.4s step-end;
}
#myelem.show {
    display: block;
    opacity: 1;
    transition: opacity 0.4s ease-out,display 0.4s step-start;
    -ms-transition: opacity 0.4s ease-out,display 0.4s step-start;
    -moz-transition: opacity 0.4s ease-out,display 0.4s step-start;
    -webkit-transition: opacity 0.4s ease-out,display 0.4s step-start;
}

触发更改的JavaScript是:

document.getElementById('myelem').className = "show";

但是过渡似乎并没有发生 – 它只是从一个状态跳到另一个状态。

我究竟做错了什么?

解决方法

它在您删除显示属性时工作。
#myelem {
    opacity: 0;
    transition: opacity 0.4s ease-in;
    -ms-transition: opacity 0.4s ease-in;
    -moz-transition: opacity 0.4s ease-in;
    -webkit-transition: opacity 0.4s ease-in;
}
#myelem.show {
    opacity: 1;
    transition: opacity 0.4s ease-out;
    -ms-transition: opacity 0.4s ease-out;
    -moz-transition: opacity 0.4s ease-out;
    -webkit-transition: opacity 0.4s ease-out;
}​

JSFiddle

这样做的原因是只有具有数字的CSS属性可以转换。你认为“50%状态”应该在“显示:无;”之间和“display:block;”?由于无法计算,因此您不能为显示属性设置动画。

原文链接:https://www.f2er.com/css/222466.html

猜你在找的CSS相关文章