我知道,这并不是您问题的解决方案,因为您要求
显示+不透明度
我的方法解决了一个更笼统的问题,但是也许这是应该display
与结合使用解决的背景问题opacity
。
我的愿望是在看不见元素时将其移开。该解决方案的确做到了这一点:将元素移开,可以用于过渡:
.child {
left: -2000px;
opacity: 0;
visibility: hidden;
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
}
.parent:hover .child {
left: 0;
opacity: 1;
visibility: visible;
transition: left 0s, visibility 0s, opacity 0.8s;
}
此代码不包含任何浏览器前缀或向后兼容性黑客。它仅说明了该概念,因为不再需要该元素时如何将其移开。
有趣的部分是两个不同的过渡定义。当鼠标指针悬停在.parent
元素上时,.child
需要立即将元素放在适当位置,然后将更改不透明度:
transition: left 0s, visibility 0s, opacity 0.8s;
如果没有悬停,或者将鼠标指针从元素上移开,则必须等到不透明度更改完成后才能将元素移出屏幕:
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
在设置display:none
不会破坏布局的情况下,将对象移开将是一种可行的选择。
我希望我能回答这个问题,尽管我没有回答。