javascript - 添加导航栏动画的问题
问题描述
const [isMenuOpen, setIsMenuOpen] = useState(false);
@keyframes appear {
0%{
transform: translateX(100%);
}
100%{
transform: translateX(0%);
}
}
.mNavBar{
animation: appear 200ms ease-in forwards;
}
{isMenuOpen ? <div className="mNavBar" ></div> : null}
我想向我的导航栏添加动画效果。我尝试使用切换类并添加动画,即 translateX(-100%) 但是当页面加载时,navBar 以某种方式保持打开一秒钟,然后即使 isMenuOpen 默认为 false 也会翻译出来。
解决方案
您应该使用元素的 className 而不是添加/删除整个元素。例如:
// The state:
const [isMenuOpen, setIsMenuOpen] = useState(false);
// The element:
<div className={`mNavBar ` + (isMenuOpen && `open`)}></div>
// The styles:
.mNavBar{
transition: transform 200ms;
transform: translateX(-100%);
// the rest of your styles
}
.mNavBar.open{
transform: translateX(0);
}
推荐阅读
- azure - 每次 Azure 应用服务重新启动时都会删除 OpenSSH 私钥
- javascript - 延迟重试承诺,直到在 NodeJS 中解决
- javascript - 在我对问题进行分类后切换不起作用
- javascript - 如何以角度触发window.onerror?
- python - 如何在 python 中将单个字符串和多个字符串转换为有效的 set()?
- mitmproxy - mitmproxy:数据中不存在前导 0 的 HTTP 请求
- raspberry-pi - java.lang.UnsatisfiedLinkError: com.slytechs.library.NativeLibrary.dlopen(Ljava/lang/String;)J
- ruby - Ruby在ubuntu上作为服务(systemd)运行时执行系统命令
- python - Python selenium webdriver click() 无法正常工作
- django - django rest框架中的用户外键