javascript - 如何使 classList.toggle 遵循类的 CSS
问题描述
我有一个 CSS 类:
.do-flip {
transform: rotateX(180deg);
transform-style: preserve-3d;
transition: transform 0.8s, -webkit-transform 0.8s;
}
当我单击导致将此类添加到元素的按钮时,卡片会翻转,当我单击导致 classList.toggle 的背面按钮时,它会取消翻转。
它不做的是使用与原始翻转相同的变换样式和过渡效果来取消翻转(翻转)。它只是瞬间呈现正面。
解决方案
那是因为您已经删除了包含转换编码的类。您需要将默认类设置为在返回时具有所需的转换,或者创建一个新的撤消翻转类,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 - 子选择器和相邻兄弟选择器有什么区别?
- reactjs - 刷新 axios 拦截器中的令牌不起作用
- python - 如何从特定范围的单元格中获取值并将其复制到 Python 数据框中的特定范围?
- r - 插入符号包未在 Rstudio 中加载
- javascript - 如何在不编译 typescript 的情况下在 typescript monorepo 中使用 vs-code 和 ts-node 进行调试
- javascript - 如何使用按钮删除所有动态创建的元素
- terraform - Terraform - 无法将字符串变量传递给子模块
- json - Azure Durable Functions 我应该如何处理 TaskFailedExceptionDeserializationException
- javascript - Vue CLI 中导入的文件说明(App 与 App.vue 之间的区别)
- html - 如何设置复选框内容?