Jadual Kandungan
✅ 1. Header Sticky Basic dengan mengecut lancar pada tatal
Struktur HTML
✅ 2. CSS: Sticky Shrink on Scroll (CSS moden dengan garis masa tatal)
✅ 3. Fallback: JavaScript minimum CSS minimum (disyorkan untuk pengeluaran)
CSS yang dikemas kini
Javascript untuk menambah kelas pada tatal
✅ 4. Peningkatan pilihan
Ringkasan
Rumah hujung hadapan web tutorial css Bagaimana untuk membuat header melekit yang menyusut pada tatal dengan CSS?

Bagaimana untuk membuat header melekit yang menyusut pada tatal dengan CSS?

Aug 04, 2025 pm 04:37 PM

Gunakan kedudukan: melekit untuk mencapai kepala melekit; 2. CSS moden secara automatik boleh mengecut apabila menatal melalui animasi-masa: Lihat (), tetapi sokongan penyemak imbas adalah terhad; 3. Adalah disyorkan untuk menggabungkan JavaScript untuk mendengar acara tatal dalam persekitaran pengeluaran. Apabila menatal ke bawah melebihi 50px, tambah kelas. 4. Pengoptimuman pilihan termasuk menggunakan transformasi atau perubahan untuk meningkatkan prestasi animasi, tetapi memberi perhatian kepada kesan susun atur; Penyelesaian ini mempunyai keserasian yang baik dan hasil yang lancar, dan sesuai untuk reka bentuk web moden.

Bagaimana untuk membuat header melekit yang mengecut pada tatal dengan CSS?

Mewujudkan tajuk melekit yang mengecut apabila pengguna menatal ke bawah halaman adalah corak UX yang bersih dan moden. Anda boleh mencapai kesan ini hanya menggunakan CSS (dengan sedikit bantuan dari position: sticky dipandu dan tatal), walaupun sokongan penuh untuk kesan berasaskan tatal lanjutan mungkin memerlukan mempertimbangkan keserasian penyemak imbas.

Bagaimana untuk membuat header melekit yang mengecut pada tatal dengan CSS?

Berikut adalah cara untuk membuat tajuk melekit yang mengecut pada tatal menggunakan CSS tulen , dengan pendekatan yang mesra.


✅ 1. Header Sticky Basic dengan mengecut lancar pada tatal

Kami akan menggunakan position: sticky untuk Stickiness dan CSS Scroll-Driven Animations (melalui scroll-timeline dan animation )-kaedah yang lebih baru tetapi elegan. Kami juga akan menunjukkan alternatif yang lebih mudah menggunakan JavaScript jika diperlukan.

Bagaimana untuk membuat header melekit yang mengecut pada tatal dengan CSS?

Struktur HTML

 <header class = "sticky-header">
  <div class = "header-content">
    <h1> Laman web saya </h1>
    <av>
      <a href = "#"> home </a>
      <a href = "#"> tentang </a>
      <a href = "#"> Hubungi </a>
    </nav>
  </div>
</header>

<!-Kandungan halaman untuk membolehkan menatal->
<tain>
  <p> tatal ke bawah untuk melihat kesannya ... </p>
  <!-tambah lebih banyak kandungan untuk membolehkan Scrolling->
  <div style = "Height: 200vh;"> </div>
</main>

✅ 2. CSS: Sticky Shrink on Scroll (CSS moden dengan garis masa tatal)

Kaedah ini menggunakan animasi yang didorong oleh CSS , yang disokong dalam pelayar moden seperti Chrome, Edge, dan Firefox (dengan bendera).

 .sticky-header {
  Kedudukan: melekit;
  Atas: 0;
  Latar Belakang: #ffff;
  Padding: 20px 10px;
  box-shadow: 0 2px 10px rgba (0, 0, 0, 0.1);
  Peralihan: padding 0.3s mudah;

  / * Tentukan garis masa tatal */
  Animasi-masa: Lihat ();
  Nama Animasi: Shrink-Header;
  Animasi-Range: Entry 0% Cover 100%;
  Animasi-Fill-Mode: Kedua-duanya;
  Z-indeks: 1000;
}

.header-Content H1 {
  Margin: 0;
  saiz font: 24px;
  Peralihan: Saiz fon 0.3s mudah;
}

.Header-Content Nav A {
  margin-kiri: 20px;
  saiz font: 18px;
  Warna: #333;
  Teks-penyerapan: Tiada;
  Peralihan: Saiz fon 0.3s mudah;
}

/ * Animasi untuk mengecut header */
@KeyFrames mengecut-header {
  dari {
    Padding-block: 20px;
  }
  ke {
    Padding-block: 10px;
  }
}

/ * Pilihan: mengecut teks juga */
.sticky-header: IS (: state (shrunk)) .header-content H1 {
  saiz font: 20px;
}

? Nota : animation-timeline: view() Membuat garis masa berdasarkan kedudukan tatal elemen ke dalam viewport. Ini adalah kunci kepada animasi berkaitan tatal dalam CSS tulen.

Bagaimana untuk membuat header melekit yang mengecut pada tatal dengan CSS?

Walau bagaimanapun, sokongan penyemak imbas untuk animation-timeline dan @scroll-timeline masih terhad. Untuk keserasian yang lebih luas, gunakan JavaScript Fallback di bawah.


✅ 3. Fallback: JavaScript minimum CSS minimum (disyorkan untuk pengeluaran)

Jika anda memerlukan sokongan penyemak imbas yang luas (safari, krom yang lebih tua, dan lain -lain), menggabungkan kelas CSS dengan JavaScript kecil untuk mengesan kedudukan tatal.

CSS yang dikemas kini

 .sticky-header {
  Kedudukan: melekit;
  Atas: 0;
  Latar Belakang: #ffff;
  Padding: 20px 10px;
  box-shadow: 0 2px 10px rgba (0, 0, 0, 0.1);
  Peralihan: padding 0.3s mudah;
  Z-indeks: 1000;
}

.sticky-header.shrunk {
  Padding: 10px;
}

.Sticky-Header.Shrunk H1 {
  saiz font: 20px;
}

.sticky-header.shrunk nav a {
  saiz font: 16px;
}

Javascript untuk menambah kelas pada tatal

 header const = document.QuerySelector (&#39;. Sticky-header&#39;);
Biarkan LastScrollTop = 0;

window.addeventListener (&#39;tatal&#39;, () => {
  const currentscrollTop = window.scrolly;

  // hanya mencetuskan semasa menatal ke bawah
  jika (currentscrollTop> lastscrollTop && currentscrollTop> 50) {
    header.classlist.add (&#39;shrunk&#39;);
  } else {
    header.classlist.remove (&#39;shrunk&#39;);
  }

  lastScrollTop = currentscrollTop;
});

? Pendekatan ini boleh dipercayai dan disokong secara meluas. Header menyusut ketika menatal ke 50px lalu dan mengembang kembali ketika menatal.


✅ 4. Peningkatan pilihan

  • Gunakan will-change: transform atau transform: scale() untuk Animasi Lancar.
  • Tambah requestAnimationFrame untuk mengoptimumkan prestasi tatal.
  • Debounce atau tatal tatal throttle jika diperlukan.

Contoh dengan transform untuk Skaling Smoother:

 .sticky-header.shrunk {
  Transform: Skala (0.95);
  Transform-Origin: Pusat Atas;
}

Tetapi berhati -hati - transform boleh menjejaskan susun atur. Melekat pada padding dan perubahan font-size untuk hasil yang lebih selamat.


Ringkasan

  • Gunakan position: sticky untuk keletihan.
  • Untuk penyemak imbas moden: Cuba animasi yang didorong oleh CSS ( animation-timeline: view() ).
  • Untuk pengeluaran: Gunakan peralihan CSS JavaScript untuk bertukar -tukar kelas .shrunk pada tatal.
  • Sentiasa menguji saiz skrin mudah alih dan berbeza.

Pada asasnya, ia adalah kombo kedudukan melekit, peralihan lancar, dan pengesanan tatal - mudah tetapi berkesan.

Atas ialah kandungan terperinci Bagaimana untuk membuat header melekit yang menyusut pada tatal dengan CSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Skop pembolehubah PHP dijelaskan
1 bulan yang lalu By 百草
Mengulas kod dalam php
1 bulan yang lalu By 百草
Petua untuk menulis komen php
1 bulan yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1510
276
Apakah ketidakkonsistenan penyemak imbas CSS biasa? Apakah ketidakkonsistenan penyemak imbas CSS biasa? Jul 26, 2025 am 07:04 AM

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Apakah harta tanah aksen? Apakah harta tanah aksen? Jul 26, 2025 am 09:25 AM

Accent-color adalah atribut yang digunakan dalam CSS untuk menyesuaikan warna-warna sorot elemen bentuk seperti kotak pilihan, butang radio dan slider; 1. Ia secara langsung mengubah warna lalai keadaan yang dipilih dari kawalan borang, seperti menukar tanda semak biru kotak semak menjadi merah; 2. Unsur yang disokong termasuk kotak input Type = "Checkbox", Type = "Radio" dan Type = "Range"; 3. Menggunakan warna aksen boleh mengelakkan gaya tersuai kompleks dan struktur dom tambahan, dan mengekalkan kebolehcapaian asli; 4. Ia umumnya disokong oleh pelayar moden, dan pelayar lama perlu diturunkan; 5. Set Accent-Col

Bagaimanakah lembaran gaya lalai pelayar mempengaruhi rendering? Bagaimanakah lembaran gaya lalai pelayar mempengaruhi rendering? Jul 19, 2025 am 02:08 AM

Gaya lalai penyemak imbas memastikan kebolehbacaan asas dengan menggunakan margin, mengisi, fon, dan gaya elemen secara automatik, tetapi boleh menyebabkan susun atur silang penyemak imbas yang tidak konsisten. 1. Margin lalai dan mengisi perubahan aliran susun atur, seperti jarak tajuk, perenggan dan senarai; 2. Tetapan fon lalai mempengaruhi kebolehbacaan, seperti saiz fon 16px dan font masa times; 3. Unsur -unsur bentuk sangat berbeza dalam pelayar yang berbeza, jadi penampilan perlu ditetapkan semula; 4. Beberapa tag seperti Strong dan EM mempunyai gaya penekanan lalai dan perlu ditulis secara jelas. Penyelesaian termasuk menggunakan normalize.css, gaya tetapan semula, atau margin yang jelas dan mengisi global, sambil menyesuaikan fon dan bentuk bentuk untuk konsistensi.

Bagaimana cara menggayakan huruf pertama atau baris pertama perenggan? Bagaimana cara menggayakan huruf pertama atau baris pertama perenggan? Jul 19, 2025 am 02:58 AM

Untuk mencantikkan permulaan perenggan untuk meningkatkan daya tarikan visual, amalan biasa adalah menggunakan unsur-unsur pseudo CSS atau gaya secara manual dokumen. Dalam pembangunan web, p :: letter pertama boleh digunakan untuk menetapkan gaya huruf pertama, seperti membesarkan, membanting, dan membuang warna, tetapi harus diperhatikan bahawa ia hanya sesuai untuk unsur-unsur peringkat blok; Jika anda ingin menyerlahkan keseluruhan baris pertama, gunakan P :: Line pertama untuk menambah gaya; Dalam perisian dokumen seperti Word, anda boleh menyesuaikan format huruf pertama secara manual atau membuat templat gaya, dan InDesign mempunyai fungsi terbina dalam "sinking pertama" yang sesuai untuk penerbitan dan reka bentuk; Apabila memohon, anda perlu memberi perhatian kepada butiran, seperti mengelakkan gaya kompleks yang mempengaruhi membaca dan memastikan keserasian dan konsistensi format.

Terangkan harta `menegak-align 'dan kes penggunaannya yang tipikal Terangkan harta `menegak-align 'dan kes penggunaannya yang tipikal Jul 26, 2025 am 07:35 AM

Thevertikal-alignpropertyincsunsignsinlineortable-cellelsementsvertically.1.itadjustSelementsLikeimagesorforminputswithIntextlinesingvaluesebaseline, Middle, Super, andSub.2.INTablecells, itControlscontentalignmentwith, Orbottomeses, STERSTOMENTIGES

Huraikan sifat-sifat CSS `COUNTRY` dan` COUNTRY-INCREMENT` Huraikan sifat-sifat CSS `COUNTRY` dan` COUNTRY-INCREMENT` Jul 18, 2025 am 04:00 AM

Reset dan kaunter kaunter CSS digunakan untuk jumlah elemen HTML secara automatik. 1. Gunakan reset kaunter untuk memulakan atau menetapkan semula kaunter, sebagai contoh, seksyen {restra-reset: sub-seksyen;} untuk membuat kaunter bernama sub-seksyen; 2. Meningkatkan kaunter melalui kaunter-ketegangan, seperti H3 {Counter-Increment: Sub-section;} untuk meningkatkan setiap nombor tajuk H3; 3. Gunakan atribut kandungan untuk menggabungkan unsur-unsur pseudo untuk memaparkan kaunter, seperti h3 :: sebelum {kandungan:

Bagaimana untuk membersihkan CSS yang tidak digunakan? Bagaimana untuk membersihkan CSS yang tidak digunakan? Jul 27, 2025 am 02:47 AM

UseAutomatedToolsLikePurgecssoruncsStoScanandRemoveUnusedCss; 2.integratePurgingIntoyourBuildProcessviawebpack, Vite, OrtailWind 'Scontentconfiguration; 3.auditcssusageWithchromedevtoolscoveragetabbeforepurgingtoavoidremovingneededstyles; 4.safelistdynamic

Bagaimana cara menukar warna teks dalam CSS? Bagaimana cara menukar warna teks dalam CSS? Jul 27, 2025 am 04:25 AM

Untuk menukar warna teks dalam CSS, anda perlu menggunakan atribut warna; 1. Gunakan atribut warna untuk menetapkan warna latar depan teks, nama warna yang menyokong (seperti merah), kod heksadesimal (seperti #FF0000), nilai RGB (seperti RGB (255,0,0)), nilai HSL (0,100% RGBA (255,0,0,0.5)); 2. Anda boleh memohon warna ke mana -mana elemen yang mengandungi teks, seperti tajuk H1 hingga H6, perenggan P, pautan A (perhatikan tetapan warna dari keadaan yang berlainan: pautan, a: dilawati, A: hover, a: aktif), butang, div, span, dan sebagainya; 3. Kebanyakan

See all articles