在一些帮助下,我能够使div在过渡时平稳扩展。现在,我想反转它,以便在类更改时,它不仅消失在茫茫人海中,而且像打开时一样关闭。
我以为我只能检查最小高度,这会使它反向滑动。但这似乎对我不起作用。
我在这里做错了什么?
$(function() {
$('.pp-post-banner-overlay').on('click', function() {
let postFullId = $(this).attr('id');
let postNumId = postFullId.slice(23);
$('.pp-post-container').not('.element-invisible').addClass('element-invisible');
jQuery('#pp-post-container-' + postNumId).removeClass('element-invisible');
});
});
.element-invisible {
position: absolute !important;
max-height: 0px;
width: 100%;
overflow: hidden;
clip: rect(1px 1px 1px 1px);
/* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
.pp-post-container {
overflow: hidden;
width: 100%;
max-height: 9999px;
min-height: 0px;
-webkit-transition: max-height, min-height, 4s;
-webkit-transition-timing-function: ease-in;
transition: max-height, min-height, 4s;
transition-timing-function: ease-in;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pp-post-{post_id}" class="pp-post">
<div id="pp-post-item-{post_id}" class="pp-post-item">
<div id="pp-post-banner-overlay-{post_id}" class="pp-post-banner-overlay"></div>
</div>
</div>
<div id="pp-post-container-{post_id}" class="pp-post-container element-invisible"></div>
最佳答案
这取决于您要如何实现这一目标。
由于您的代码不起作用,并且您没有提供有效的jsfiddle,我可以尝试为您提供一些替代方法:
由于您提到了类“ pp-post-banner-overlay”,因此将其用作选择器:
点击时:
$('.pp-post-banner-overlay').click(function() {
$(this).fadeOut("slow", function() {
$(this).removeClass("desiredClasstoRemove");
});
});
鼠标离开时
$('.pp-post-banner-overlay').mouseleave( function() {
$(this).fadeOut("slow", function() {
$(this).removeClass("desiredClasstoRemove");
});
});
使用CSS:
可以仅使用css添加transions。适用于所需的选择器,例如:
.pp-post-banner-overlay{
transition: opacity 500 ease-in-out;
}
这是未经测试的。但是,猜测它应该起作用。
安德烈