Rumah hujung hadapan web Soal Jawab bahagian hadapan halaman jquery melarang menatal halaman

halaman jquery melarang menatal halaman

May 14, 2023 am 09:58 AM

Apabila membangunkan halaman web, kami mungkin menghadapi situasi di mana kami perlu melarang penatalan halaman dalam keadaan tertentu, seperti kotak modal timbul, menu timbul, dsb. Dalam kes ini, kita boleh menggunakan jQuery untuk melumpuhkan penatalan halaman. Berikut akan memperkenalkan secara terperinci cara menggunakan jQuery untuk mengelakkan penatalan halaman.

1. Mendapatkan dan melumpuhkan penatalan

Pertama, anda perlu mendapatkan bar skrol. Kita boleh menggunakan kod berikut untuk mendapatkan bar skrol:

var scrollTop = $(window).scrollTop();
Salin selepas log masuk

Antaranya, scrollTop() ialah kaedah yang digunakan dalam jQuery untuk mendapatkan kedudukan bar skrol. Selepas mendapat nilai scrollTop, kami boleh menggunakan kod berikut untuk melumpuhkan penatalan halaman:

$('body').addClass('noscroll').css({
   'top': -scrollTop + 'px'
 });
Salin selepas log masuk

Di sini, kami menambah kelas tersuai noscroll pada elemen badan halaman dan menetapkan atribut teratas untuk dibuat elemen badan Gerakkan kedudukan ke atas untuk menghalang halaman daripada menatal. Perlu diingatkan bahawa untuk mengelakkan halaman berkelip, apabila melumpuhkan penatalan halaman, nilai scrollTop perlu ditetapkan kepada nombor negatif. Begitu juga, kami juga boleh menggunakan kod berikut untuk memulihkan penatalan halaman:

$('body').removeClass('noscroll');
$(window).scrollTop(scrollTop);
Salin selepas log masuk

Di sini, kami mengalih keluar kelas noscroll untuk elemen badan halaman dan menggunakan kaedah scrollTop() untuk menetapkan bar skrol kedudukan kembali kepada nilai asal, supaya tatal halaman boleh dipulihkan.

2. Elakkan perubahan lebar bar skrol

Selepas melumpuhkan skrol halaman, masalah akan timbul: kehilangan bar skrol akan menyebabkan lebar halaman mengecil, yang akan menyebabkan kegelisahan halaman. Untuk menyelesaikan masalah ini, kami boleh menambah elemen pemegang tempat pada struktur HTML Apabila penatalan halaman dilumpuhkan, lebar elemen ditetapkan pada lebar bar skrol halaman semasa, untuk mengelakkan halaman bergoncang. . Berikut ialah kod untuk menambah elemen pemegang tempat:

<body>
  <div class="scrollbar-width"></div>
  <!-- 页面其余结构 -->
</body>
Salin selepas log masuk

Seterusnya, kita boleh menggunakan kod berikut untuk mendapatkan lebar bar skrol:

function getScrollbarWidth() {
  var outer = document.createElement('div');
  outer.style.visibility = 'hidden';
  outer.style.width = '100px';
  outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
  document.body.appendChild(outer);
  var widthNoScroll = outer.offsetWidth;
  // force scrollbars
  outer.style.overflow = 'scroll';
  // add innerdiv
  var inner = document.createElement('div');
  inner.style.width = '100%';
  outer.appendChild(inner);        
  var widthWithScroll = inner.offsetWidth;
  // remove divs
  outer.parentNode.removeChild(outer);
  return widthNoScroll - widthWithScroll;
};
Salin selepas log masuk

Di sini, kita menggunakan fungsi untuk mendapatkan lebar lebar bar skrol. Pertama, elemen div dicipta dan digayakan kepada keterlihatan: tersembunyi dan lebar: 100px. Kemudian, tetapkan gaya msOverflowStyle ke bar skrol (untuk aplikasi WinJS) dan tambahkannya pada elemen badan dokumen. Seterusnya, gunakan sifat innerWidth untuk mendapatkan lebar bar skrol. Seterusnya, tetapkan gaya limpahan untuk menatal dan buat bahagian dalam elemen div baharu untuk mengisi bahagian luar elemen div asal. Akhir sekali, tetapkan lebar dalam kepada 100% dan dapatkan Lebar dalamannya. Perkara terakhir yang perlu dilakukan ialah memadam elemen div dan menolak lebar seterusnya daripada lebar sebelumnya untuk mendapatkan lebar bar skrol.

3. Kod lengkap

Akhir sekali, kami menggabungkan kod yang diperkenalkan di atas untuk mendapatkan kod lengkap untuk melarang menatal halaman:

var scrollbarWidth = getScrollbarWidth();
var scrollTop = $(window).scrollTop();

// 禁用滚动条
$('body').addClass('noscroll').css({
  'top': -scrollTop + 'px',
  'padding-right': scrollbarWidth + 'px'
});

// 恢复滚动条
$('body').removeClass('noscroll').css({
  'padding-right': ''
});
$(window).scrollTop(scrollTop);


function getScrollbarWidth() {
  var outer = document.createElement('div');
  outer.style.visibility = 'hidden';
  outer.style.width = '100px';
  outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
  document.body.appendChild(outer);
  var widthNoScroll = outer.offsetWidth;
  // force scrollbars
  outer.style.overflow = 'scroll';
  // add innerdiv
  var inner = document.createElement('div');
  inner.style.width = '100%';
  outer.appendChild(inner);        
  var widthWithScroll = inner.offsetWidth;
  // remove divs
  outer.parentNode.removeChild(outer);
  return widthNoScroll - widthWithScroll;
};
Salin selepas log masuk

Di atas adalah menggunakan jQuery untuk melaksanakan halaman larangan Semua langkah untuk menatal. Dengan kaedah ini, kami boleh mengawal penatalan halaman dengan lebih baik semasa membangunkan halaman web dan mengelakkan beberapa situasi yang tidak dijangka.

Atas ialah kandungan terperinci halaman jquery melarang menatal halaman. 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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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!

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)

Peranan React dalam HTML: Meningkatkan Pengalaman Pengguna Peranan React dalam HTML: Meningkatkan Pengalaman Pengguna Apr 09, 2025 am 12:11 AM

React menggabungkan JSX dan HTML untuk meningkatkan pengalaman pengguna. 1) JSX membenamkan HTML untuk menjadikan pembangunan lebih intuitif. 2) Mekanisme DOM maya mengoptimumkan prestasi dan mengurangkan operasi DOM. 3) UI pengurusan berasaskan komponen untuk meningkatkan kebolehkerjaan. 4) Pengurusan negeri dan pemprosesan acara meningkatkan interaktiviti.

React and the Frontend: Membina Pengalaman Interaktif React and the Frontend: Membina Pengalaman Interaktif Apr 11, 2025 am 12:02 AM

React adalah alat pilihan untuk membina pengalaman front-end interaktif. 1) React memudahkan pembangunan UI melalui komponen dan DOM maya. 2) Komponen dibahagikan kepada komponen fungsi dan komponen kelas. Komponen fungsi adalah lebih mudah dan komponen kelas menyediakan lebih banyak kaedah kitaran hayat. 3) Prinsip kerja React bergantung kepada algoritma DOM dan perdamaian maya untuk meningkatkan prestasi. 4) Pengurusan negeri menggunakan useState atau ini. Kaedah kitaran hayat seperti ComponentDidMount digunakan untuk logik tertentu. 5) Penggunaan asas termasuk membuat komponen dan pengurusan negeri, dan penggunaan lanjutan melibatkan cangkuk tersuai dan pengoptimuman prestasi. 6) Kesalahan biasa termasuk kemas kini status yang tidak betul dan isu prestasi, kemahiran debugging termasuk menggunakan reactdevtools dan sangat baik

Komponen React: Membuat unsur -unsur yang boleh diguna semula di HTML Komponen React: Membuat unsur -unsur yang boleh diguna semula di HTML Apr 08, 2025 pm 05:53 PM

Komponen React boleh ditakrifkan oleh fungsi atau kelas, merangkumi logik UI dan menerima data input melalui prop. 1) Tentukan komponen: Gunakan fungsi atau kelas untuk mengembalikan elemen bertindak balas. 2) Rendering Component: React Call Render Kaedah atau Melaksanakan Komponen Fungsi. 3) Komponen multiplexing: Lulus data melalui prop untuk membina UI yang kompleks. Pendekatan kitaran hayat komponen membolehkan logik dilaksanakan pada peringkat yang berbeza, meningkatkan kecekapan pembangunan dan pemeliharaan kod.

React and the Frontend Stack: Alat dan Teknologi React and the Frontend Stack: Alat dan Teknologi Apr 10, 2025 am 09:34 AM

React adalah perpustakaan JavaScript untuk membina antara muka pengguna, dengan komponen terasnya dan pengurusan negeri. 1) Memudahkan pembangunan UI melalui komponen dan pengurusan negeri. 2) Prinsip kerja termasuk perdamaian dan rendering, dan pengoptimuman dapat dilaksanakan melalui React.Memo dan Usememo. 3) Penggunaan asas adalah untuk membuat dan membuat komponen, dan penggunaan lanjutan termasuk menggunakan cangkuk dan konteksapi. 4) Kesalahan biasa seperti kemas kini status yang tidak betul, anda boleh menggunakan ReactDevTools untuk debug. 5) Pengoptimuman prestasi termasuk menggunakan react.memo, senarai virtualisasi dan codesplitting, dan menyimpan kod yang boleh dibaca dan dikekalkan adalah amalan terbaik.

Apakah faedah menggunakan TypeScript dengan React? Apakah faedah menggunakan TypeScript dengan React? Mar 27, 2025 pm 05:43 PM

TypeScript meningkatkan pembangunan React dengan menyediakan keselamatan jenis, meningkatkan kualiti kod, dan menawarkan sokongan IDE yang lebih baik, dengan itu mengurangkan kesilapan dan meningkatkan kebolehkerjaan.

Bagaimanakah anda boleh menggunakan UserEducer untuk Pengurusan Negeri Kompleks? Bagaimanakah anda boleh menggunakan UserEducer untuk Pengurusan Negeri Kompleks? Mar 26, 2025 pm 06:29 PM

Artikel ini menerangkan menggunakan UserEducer untuk Pengurusan Negeri Kompleks dalam React, memperincikan manfaatnya ke atas UseState dan bagaimana untuk mengintegrasikannya dengan useeffect untuk kesan sampingan.

Ekosistem React: Perpustakaan, Alat, dan Amalan Terbaik Ekosistem React: Perpustakaan, Alat, dan Amalan Terbaik Apr 18, 2025 am 12:23 AM

Ekosistem React termasuk perpustakaan pengurusan negeri (seperti redux), perpustakaan penghalaan (seperti reactrouter), perpustakaan komponen UI (seperti bahan-UI), alat ujian (seperti jest), dan alat bangunan (seperti webpack). Alat ini bekerjasama untuk membantu pemaju membangun dan mengekalkan aplikasi dengan cekap, meningkatkan kualiti kod dan kecekapan pembangunan.

Rangka Kerja Backend: Perbandingan Rangka Kerja Backend: Perbandingan Apr 13, 2025 am 12:06 AM

React adalah rangka kerja front-end untuk membina antara muka pengguna; Rangka kerja back-end digunakan untuk membina aplikasi sisi pelayan. React menyediakan kemas kini UI yang komponen dan cekap, dan Rangka Kerja Backend menyediakan penyelesaian perkhidmatan backend lengkap. Apabila memilih timbunan teknologi, keperluan projek, kemahiran pasukan, dan skalabiliti harus dipertimbangkan.

See all articles