国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Tajuk yang ditulis semula ialah: Bagaimanakah saya boleh menggunakan CSS Tailwind untuk mencipta menu lungsur turun animasi dengan ketinggian boleh laras?
P粉667649253
P粉667649253 2024-02-17 11:54:04
0
1
881

Saya menggunakan: Tailwindcss, React dan Next.js untuk projek sampingan.

Saya cuba mencipta bar navigasi responsif yang memaparkan menu hamburger apabila saiz skrin mencapai saiz "sm" yang ditakrifkan oleh tailwind.

Apabila saya mengklik pada ikon hamburger, saya mahu menu beralih dari ketinggian 0 kepada maks-h-40.

Saya rasa seperti saya kehilangan sesuatu yang remeh dalam kod di bawah, harap orang lain yang melihat ini dapat melihat apa yang saya hilang?

navbar.tsx

"use client";

import Image from "next/image";
import Link from "next/link";
import {
  useState
} from "react";
import logo from "../public/finallang_favicon.ico";

export default function Navbar() {
  const [showMenu, setShowMenu] = useState(false);
  const toggleMenu = () => {
    setShowMenu(!showMenu);
  };
  return ( <
    div >
    <
    nav className = "flex items-center justify-between flex-grow w-auto py-3 text-center border-b px-9 sm:w-auto" >
    <
    div className = "flex items-center justify-center flex-shrink-0 sm:mr-6" >
    <
    Link href = "/" >
    <
    Image src = {
      logo
    }
    alt = "Logo"
    width = {
      48
    }
    height = {
      48
    }
    /> <
    /Link> <
    /div> <
    div className = "hidden text-sm sm:block" >
    <
    Link href = "#"
    className = "block mt-4 sm:mr-4 text-slate-900 hover:text-slate-700 sm:mt-0 sm:inline-block" >
    About <
    /Link> <
    Link href = "#"
    className = "block mt-4 sm:mr-4 text-slate-900 hover:text-slate-700 sm:mt-0 sm:inline-block" >
    Blog <
    /Link> <
    Link href = "#"
    className = "block mt-4 text-slate-900 hover:text-slate-700 sm:mt-0 sm:inline-block" >
    Contact Me <
    /Link> <
    /div> <
    div >
    <
    button className = "hidden px-4 py-2 text-sm leading-none rounded text-slate-100 hover:text-white sm:inline-block bg-brand" >
    Download <
    /button> <
    button onClick = {
      toggleMenu
    }
    aria - label = "Toggle navigation menu"
    className = "text-gray-400 align-middle sm:hidden hover:text-gray-900 focus:ring-2 rounded-md" >
    <
    svg xmlns = "http://www.w3.org/2000/svg"
    fill = "none"
    viewBox = "0 0 24 24"
    strokeWidth = {
      2
    }
    stroke = "currentColor"
    className = "w-6 h-6" >
    <
    path strokeLinecap = "round"
    strokeLinejoin = "round"
    d = "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" / >
    <
    /svg> <
    /button> <
    /div> <
    /nav> {
      showMenu &&
        <
        div className = {
          `${showMenu ? "max-h-40" : "h-0"} text-sm text-center sm:hidden transition-all duration-500 ease-in-out overflow-hidden`
        } >
        <
        Link href = "/about"
      className = "block mt-4 text-slate-900 hover:text-slate-700" >
        About <
        /Link> <
        Link href = "/blog"
      className = "block mt-4 text-slate-900 hover:text-slate-700" >
        Blog <
        /Link> <
        Link href = "/contact"
      className = "block mt-4 text-slate-900 hover:text-slate-700" >
        Contact Me <
        /Link> <
        /div>
    } <
    /div>
  );
}

Perkara yang saya telah cuba:

  • Tambahkan height: "height" 作為 transitionProperty pada tailwind.config.js
  • saya
  • Tambahkan overflow-hidden nama kelas yang mungkin hilang pada kelas menu saya
  • Tukar antara transition-alltransition-[height] dalam kelas menu lungsur

Tingkah laku semasa: GIF tingkah laku semasa

Apa yang saya jangka akan berlaku:

  • Turun turun hendaklah beralih daripada ketinggian 0 kepada ketinggian maksimum 10rem (maks-j-40) dalam tempoh 500 milisaat, menggunakan fungsi pemasaan peralihan mudah masuk.

P粉667649253
P粉667649253

membalas semua(1)
P粉216807924

Penjelasan masalah

Pemasangan DOM

Penyampaian bersyarat melalui coretan kod:

{showMenu &&
  

Menunjukkan bahawa elemen dipasang ke dalam DOM atau dipasang di luar DOM. Peralihan tidak dimainkan pada bingkai yang sama seperti elemen dipasang/dilepaskan.

Transformasi Harta CSS

Selain itu, anda boleh menukar sifat CSS yang berbeza menggunakan kelas bersyarat bekas menu:

${showMenu ? "max-h-40" : "h-0"}
Perubahan

max-h-40 對(duì)應(yīng) max-height: 10remh-0 對(duì)應(yīng) height: 0。這意味著我們要更改兩個(gè)值的初始值:max-heightheight。根據(jù) MDN, max-height 的初始值為noneheight 的初始值為 auto.這些值相對(duì)于 showMenu adalah seperti berikut:

showMenu true false
max-height 10rem none
height auto 0
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan