【发布时间】:2021-09-06 06:02:24
【问题描述】:
我在 next.js 中使用 tailwind css 制作了一个导航栏,它反应灵敏且工作正常。
一切正常,但是当我单击汉堡按钮时,它显示列表立即出现,但我想在小屏幕尺寸上显示底部(未排序列表)并平滑过渡,我不知道如何制作过渡平滑
- 我想要的问题的解决方案是让这个列表在屏幕上平滑可见
`
import React, { useEffect, useState } from "react";
import { MenuAlt1Icon } from "@heroicons/react/outline";
function Header() {
const [isOpen, setisOpen] = React.useState(false);
const [size, setSize] = useState(0);
function handleClick() {
setisOpen(!isOpen);
}
useEffect(() => {
setSize(window.innerWidth);
window.addEventListener("resize", handleSize);
return () => window.removeEventListener("resize", handleSize);
}, []);
const handleSize = () => {
setSize(window.innerWidth);
};
`
上面是javascript代码
下面是jsx和tailwind
return (
<header>
<nav className={` shadow-md px-5 ${isOpen && size < 640 && "pb-3"}`}>
<button
type="button"
className={`${
size >= 640 ? "hidden" : "inline-block h-12 focus:outline-none"
}`}
onClick={handleClick}
>
<MenuAlt1Icon className="h-6 w-6" />
</button>
<ul
className={` ${
size >= 640
? " flex h-12 items-center space-x-2 "
: `${
isOpen
? `block space-y-2 border-t-2 border-gray-50 pt-2 transition duration-500 ease-linear`
: `hidden`
}`
}`}
>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
</ul>
</nav>
</header>
);
}
export default Header;
【问题讨论】:
标签: next.js tailwind-css