我正在用tailwindcss
制作一个react应用程序,我想做一个隐藏的移动的导航栏,当用户点击图标时,它就会出现。
所以我想在菜单出现的时候做一个过渡。
我用途:
- React
- 尾风
- 黑德勒叙伊
我的代码:
MobileMenu.js:
function MobileMenu() {
return (
<div className="block md:hidden px-4 py-3 text-white w-full bg-gray-800 border-t border-opacity-70 border-slate-700">
<div className="flex items-center mb-3 pb-3 border-b border-slate-700">
<img
src="https://africaprime.com/wp-content/uploads/2020/04/ElonMusk.jpg"
className="rounded-full w-8 h-8 cursor-pointer"
/>
<h6 className="ml-5 cursor-pointer">Elon Musk</h6>
</div>
<div className="mobile-nav-icon">
<ImHome size={20} />
<h4 className="ml-5">Home</h4>
</div>
<div className="mobile-nav-icon">
<HiUsers size={20} />
<h4 className="ml-5">Friends</h4>
</div>
<div className="mobile-nav-icon">
<CgProfile size={20} />
<h4 className="ml-5">My Profile</h4>
</div>
</div>
);
}
export default MobileMenu;
我如何在Navbar.js中显示它:
function Navbar() {
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
return (
<>
<nav className="flex justify-between items-center px-4 lg:px-8 py-3 bg-gray-900 text-white">
{/* Mobile Menu Icon */}
<div
className="block md:hidden p-2 cursor-pointer rounded-full hover:bg-gray-700 transition-2"
onClick={() => setMobileMenuOpen(!mobileMenuOpen)}
>
<FiMenu size={20} />
</div>
</nav>
{/* Mobile Menu */}
{mobileMenuOpen && <MobileMenu />}
</>
);
}
export default Navbar;
先谢了!
2条答案
按热度按时间gfttwv5a1#
您可以使用
@framer/motion
包,它允许您轻松地为元素设置动画。根据
@framer/motion
docs.,可以随意更改动画并将变体附加到
<MobileMenu />
组件。并且可以将
isMenuOpen
变量作为prop传递。rslzwgfq2#
所提供答案的一个潜在问题是状态设置不正确。有关基于先前状态值更新状态的信息,请参阅React文档。