【发布时间】:2021-10-15 07:42:27
【问题描述】:
我无法弄清楚为什么我的淡出不适用于我正在组合的叠加层。 我想用css实现大部分。我想使用 jQuery 的唯一一次是在延迟后切换显示:块类。
我需要做什么才能让叠加层的淡出在短暂延迟后正常工作?
我还包括一个 CodePen。 https://codepen.io/ChidoYo/pen/jOmdZLK
HTML
<div class="container border rounded mt-5">
<div class="row">
<div class="col pb-3">
<h1>Opacity Fade In/Out</h1>
<button class="btn btn-primary" id="toggle">Toggle</button>
</div>
</div>
</div>
<div class="superposer d-none"></div>
<div class="drawer">
<div class="row mx-0 mt-4">
<div class="col">
<h3>Drawer</h3>
</div>
</div>
</div>
CSS
.superposer {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0,0,0,0.52);
opacity: 0;
// transition: opacity 0.2s ease-in-out 2s;
animation: superposerFadeOut 1s ease-in-out 2s;
&.active {
opacity: 1;
// transition: opacity 1s ease-in-out;
animation: superposerFadeIn 0.5s ease-in-out;
}
}
@keyframes superposerFadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes superposerFadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.drawer {
position: fixed;
top: 0;
bottom: 0;
transition: right 0.25s ease-in-out;
right: -350px;
background-color: white;
border-left: 1px solid #999;
width: 350px;
&.active {
transition: right 0.25s ease-in-out 0.25s;
right: 0;
}
}
jQuery
$(() => {
$('#toggle').on('click', () => {
$('.superposer').toggleClass('active d-none');
$('.drawer').addClass('active');
});
$('.superposer').on('click', () => {
$('.superposer').removeClass('active');
$('.drawer').removeClass('active');
setTimeout(() => {
$('.superposer').addClass('d-none')
}, 1000)
})
})
【问题讨论】:
标签: jquery css twitter-bootstrap css-transitions