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

DDD
Lepaskan: 2024-10-25 04:45:29
asal
323 orang telah melayarinya

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>
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!