如何让 classList.toggle 关注 class 的 CSS
How to make classList.toggle follow class's CSS
我有一个 CSS class:
.do-flip {
transform: rotateX(180deg);
transform-style: preserve-3d;
transition: transform 0.8s, -webkit-transform 0.8s;
}
当我单击导致此 class 被添加到元素的按钮时,卡片翻转,当我单击导致 classList.toggle 的背面按钮时,它取消翻转.
它不使用与原始翻转相同的变换样式和过渡效果来取消翻转(向后翻转)。简直就是瞬间呈现正面
那是因为您删除了包含转换编码的 class。您需要设置默认 class 以在返回时获得您想要的过渡,或者创建一个新的 undo-flip class 和 classList.replace('do-flip', 'undo-flip')
,反之亦然。
const card = document.querySelector('.card').addEventListener('click', (e) => { e.target.classList.toggle('do-flip');
});
.card {
transform-style: preserve-3d;
transition: transform 0.8s, -webkit-transform 0.8s;
}
.do-flip {
transform: rotateX(180deg);
}
<div class="card">card-flip</div>
我有一个 CSS class:
.do-flip {
transform: rotateX(180deg);
transform-style: preserve-3d;
transition: transform 0.8s, -webkit-transform 0.8s;
}
当我单击导致此 class 被添加到元素的按钮时,卡片翻转,当我单击导致 classList.toggle 的背面按钮时,它取消翻转.
它不使用与原始翻转相同的变换样式和过渡效果来取消翻转(向后翻转)。简直就是瞬间呈现正面
那是因为您删除了包含转换编码的 class。您需要设置默认 class 以在返回时获得您想要的过渡,或者创建一个新的 undo-flip class 和 classList.replace('do-flip', 'undo-flip')
,反之亦然。
const card = document.querySelector('.card').addEventListener('click', (e) => { e.target.classList.toggle('do-flip');
});
.card {
transform-style: preserve-3d;
transition: transform 0.8s, -webkit-transform 0.8s;
}
.do-flip {
transform: rotateX(180deg);
}
<div class="card">card-flip</div>