【发布时间】:2020-03-30 02:43:07
【问题描述】:
我正在使用fadeIn 和fadeOut 来动画对象进出视图。我还想同时为对象的“左”属性设置动画。这适用于我的示例中的fadeOut,但不适用于fadeIn。在我的原始作品中,它适用于淡入淡出,但在淡出淡出时,过渡出现在淡入淡出之前。
也就是说,对象首先移动到它的新位置,然后淡出。
需要做什么才能让 CSS 过渡与 jQuery 淡出同时发生?
$('.wrapper').click(function() {
var thisInClick = this;
if ($(thisInClick).hasClass('show')) {
$(thisInClick).toggleClass('show');
$(thisInClick).find('.box').fadeOut(1000);
} else {
$(thisInClick).toggleClass('show');
$(thisInClick).find('.box').fadeIn(1000);
}
});
.wrapper {
display: block;
height: 300px;
width: 800px;
padding: 100px;
background: blue;
}
.box {
position: relative;
background: white;
padding: 50px;
width: 100px;
left: 70%;
display: none;
transition: left 0.5s ease-out;
}
.wrapper.show .box {
left: 10%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "wrapper">
<div class = "box">
I AM BOX
</div>
</div>
小提琴:https://jsfiddle.net/uev2qzso/1/
编辑:我应该提到原始代码在 CSS 中使用了不透明度过渡。问题是我显示的是两个链接,如果您在它们具有 opacity:0 时单击它们;他们会开火。我需要避免这种情况。
【问题讨论】: