Rumah > hujung hadapan web > tutorial css > Bagaimana untuk Mencapai Tatal Tersegerak Lancar Antara Dua DIV dengan jQuery?

Bagaimana untuk Mencapai Tatal Tersegerak Lancar Antara Dua DIV dengan jQuery?

Mary-Kate Olsen
Lepaskan: 2024-10-24 18:37:02
asal
857 orang telah melayarinya

How to Achieve Smooth Synchronized Scrolling Between Two DIVs with jQuery?

Tatal Tersegerak dengan jQuery: Mengatasi Isu Penyegerakan

Untuk mencapai tatal disegerakkan antara dua elemen DIV, adalah penting untuk mengambil kira perbezaan dalam mereka saiz. Kod yang disediakan menetapkan nilai scrollTop secara langsung, yang membawa kepada penyegerakan yang tidak konsisten. Untuk menyelesaikan masalah ini, adalah perlu untuk mengira peratusan kandungan yang ditatal dan melaraskan nilai tatal atas dengan sewajarnya.

Untuk menentukan ketinggian sebenar dan kedudukan tatal semasa, anda boleh menggunakan formula berikut:

percentage = scrollTop / (scrollHeight - offsetHeight)
Salin selepas log masuk

Pengiraan ini memberikan nilai antara 0 dan 1, mewakili peratusan kandungan yang ditatal. Mendarabkan DIV yang lain (scrollHeight - offsetHeight) dengan nilai ini menghasilkan nilai scrollTop yang sepadan untuk penatalan berkadar.

Selain itu, untuk mengelakkan gelung peristiwa tatal yang tidak terhingga dalam Firefox, anda harus melepaskan sementara pendengar, tetapkan nilai scrollTop, dan kemudian ikat semula pendengar:

$divs.on('scroll', function(e) {
  var $other = $divs.not(this).off('scroll'), other = $other.get(0);
  var percentage = this.scrollTop / (this.scrollHeight - this.offsetHeight);
  other.scrollTop = percentage * (other.scrollHeight - other.offsetHeight);
  // Firefox workaround. Rebinding without delay isn't enough.
  setTimeout(function() { $other.on('scroll', sync); }, 10);
});
Salin selepas log masuk

Dengan melaksanakan penambahbaikan ini, anda boleh mencapai penatalan lancar dan disegerakkan antara elemen DIV, walaupun dengan saiz yang berbeza-beza, dan mengelakkan kemungkinan isu gelung tak terhingga dalam Firefox.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Tatal Tersegerak Lancar Antara Dua DIV dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan