CSS 转换 sass 文件和动画不工作
CSS transform on sass file and animations not working
我正在尝试通过旋转 3 divs(.line 1、.line2 和 .line3)来制作动画,点击另一个 div (#burger)。
3 个 div 包裹在 #burger div 周围(这些在 .js 文件中):
<div
id="burger"
onClick={activateResponsiveMenu}
className={navbarStyles.burger}
>
<div className={navbarStyles.line1}></div>
<div className={navbarStyles.line2}></div>
<div className={navbarStyles.line3}></div>
</div>
CSS 写在.scss 文件中并导入为'navbarStyles'。
在 CSS 中,我通过向 #burger div 添加 class 'clicked' 来为 div 设置动画。至于动画,我希望 .line1 和 .line3 divs 旋转,.line 2 消失:
.clicked .line1 {
transform: rotate(-45deg translate(-5px, 6px));
}
.clicked .line2 {
opacity: 0;
}
.clicked .line3 {
transform: rotate(45deg translate(-5px, -6px));
}
切换 class .clicked on #burger 的 JS 函数如下:
const activateResponsiveMenu = () => {
const burger = document.querySelector("#burger")
burger.classList.toggle(navbarStyles.clicked)
}
问题是,虽然 .line2 div 的不透明度在点击#burger 时变为 0,但 CSS 变换不起作用,.line1 和 .line3 不旋转.正在应用所有其他样式。
根据转换规范,值应该 space 分隔 https://developer.mozilla.org/en-US/docs/Web/CSS/transform 这会使您的语法无效,您应该改用以下格式
transform: rotate(-45deg) translate(-5px, 6px);
我正在尝试通过旋转 3 divs(.line 1、.line2 和 .line3)来制作动画,点击另一个 div (#burger)。
3 个 div 包裹在 #burger div 周围(这些在 .js 文件中):
<div
id="burger"
onClick={activateResponsiveMenu}
className={navbarStyles.burger}
>
<div className={navbarStyles.line1}></div>
<div className={navbarStyles.line2}></div>
<div className={navbarStyles.line3}></div>
</div>
CSS 写在.scss 文件中并导入为'navbarStyles'。 在 CSS 中,我通过向 #burger div 添加 class 'clicked' 来为 div 设置动画。至于动画,我希望 .line1 和 .line3 divs 旋转,.line 2 消失:
.clicked .line1 {
transform: rotate(-45deg translate(-5px, 6px));
}
.clicked .line2 {
opacity: 0;
}
.clicked .line3 {
transform: rotate(45deg translate(-5px, -6px));
}
切换 class .clicked on #burger 的 JS 函数如下:
const activateResponsiveMenu = () => {
const burger = document.querySelector("#burger")
burger.classList.toggle(navbarStyles.clicked)
}
问题是,虽然 .line2 div 的不透明度在点击#burger 时变为 0,但 CSS 变换不起作用,.line1 和 .line3 不旋转.正在应用所有其他样式。
根据转换规范,值应该 space 分隔 https://developer.mozilla.org/en-US/docs/Web/CSS/transform 这会使您的语法无效,您应该改用以下格式
transform: rotate(-45deg) translate(-5px, 6px);