Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencapai Tatal Segerak Lancar dengan Saiz Elemen Berbeza dalam jQuery?

Bagaimana untuk Mencapai Tatal Segerak Lancar dengan Saiz Elemen Berbeza dalam jQuery?

DDD
DDDasal
2024-10-25 04:45:29324semak imbas

How to Achieve Smooth Synchronized Scrolling with Different Element Sizes in jQuery?

Tatal Tersegerak dalam jQuery: Cabaran dan Penyelesaian

Keperluan untuk tatal disegerakkan sering timbul apabila bekerja dengan elemen saiz yang berbeza-beza yang memaparkan kandungan yang serupa . Walaupun penyegerakan tatal asas boleh dicapai menggunakan tetapan nilai tatal atas terus, ia menghadapi had apabila elemen mempunyai dimensi yang berbeza.

Penyegerakan Tatal Alamat:

Untuk memastikan penatalan berkadar walaupun saiz elemen yang berbeza, peratusan kandungan yang ditatal perlu dipertimbangkan. Elemen pengiraan.scrollTop / (elemen.scrollHeight - element.offsetHeight) menghasilkan peratusan ini. Mendarab nilai ini dengan elemen lain (element.scrollHeight - element.offsetHeight) memberikan nilai scrollTop yang sepadan.

Mencegah Gelung Infinite dalam Firefox:

Firefox mengalami masalah di mana kod penyegerakan mencipta gelung tak terhingga. Untuk menangani perkara ini, pendengar acara tatal boleh dialih keluar buat sementara waktu sambil menetapkan nilai scrollTop dan kemudian terikat semula.

Pelaksanaan Kod:

Kod berikut melaksanakan penyelesaian :

<code class="javascript">var $divs = $('#div1, #div2');
var sync = 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);
}
$divs.on( 'scroll', sync);</code>

Kod ini bergantung pada pembolehubah $divs, yang harus dilaraskan untuk menyasarkan elemen yang dikehendaki. Ia juga menggabungkan penyelesaian khusus Firefox untuk menghalang isu pendengar.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Tatal Segerak Lancar dengan Saiz Elemen Berbeza dalam jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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