Saya punya meja besar dengan bilah gulir vertikal. Saya ingin menggulir ke baris tertentu dalam tabel ini menggunakan jQuery / Javascript.
Apakah ada metode bawaan untuk melakukan ini?
Ini adalah sedikit contoh untuk dimainkan.
div {
width: 100px;
height: 70px;
border: 1px solid blue;
overflow: auto;
}
<div>
<table id="my_table">
<tr id='row_1'><td>1</td></tr>
<tr id='row_2'><td>2</td></tr>
<tr id='row_3'><td>3</td></tr>
<tr id='row_4'><td>4</td></tr>
<tr id='row_5'><td>5</td></tr>
<tr id='row_6'><td>6</td></tr>
<tr id='row_7'><td>7</td></tr>
<tr id='row_8'><td>8</td></tr>
<tr id='row_9'><td>9</td></tr>
</table>
</div>
javascript
jquery
scroll
Misha Moroshko
sumber
sumber
scrollTo
berpusat daripada di atas:scrollTo.offset().top - container.offset().top + container.scrollTop() - (container.height()/2)
element.scrollIntoView()
- hanya itu yang diperlukan. Animasi terstandarisasi. Lihat developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoViewSaya menyadari ini tidak menjawab pengguliran dalam wadah, tetapi orang-orang merasa berguna:
Kami memilih html dan tubuh karena penggulung dokumen bisa berada di salah satu dan sulit untuk menentukan mana. Untuk peramban modern, Anda dapat melakukannya
$(document.body)
.Atau, untuk pergi ke bagian atas halaman:
Atau tanpa animasi:
ATAU...
sumber
$('html,body')
? Dia hanya perlu dalam wadah tertentu. Jawaban yang diterima lebih baik untuk saya. Saya memiliki kasus serupa seperti pertanyaan yang diajukan dan jawaban Anda tidak berhasil untuk saya.Saya setuju dengan Kevin dan yang lainnya, menggunakan plugin untuk ini tidak ada gunanya.
sumber
Saya berhasil melakukannya sendiri. Tidak perlu plugin apa pun. Lihat intisari saya :
sumber
No need for any plugins
?? Tetapi Anda menggunakan jQuery! Ini adalah perpustakaan yang sangat besar, bahkan bukan plugin.Anda dapat menggunakan
scrollIntoView()
metode dalam javascript. berikan sajaid.scrollIntoView();
Sebagai contoh
sumber
Anda dapat menggunakan plugin plugin jQuery scrollTo :
sumber
Gulir elemen ke tengah wadah
Untuk membawa elemen ke tengah wadah.
DEMO di CODEPEN
JS
HTML
css
Ini tidak tepat ke pusat tetapi Anda tidak akan mengenalinya pada elemen yang lebih besar.
sumber
Anda dapat menggulir dengan jQuery dan JavaScript. Hanya perlu dua elemen jQuery dan kode JavaScript ini:
Tampilkan cuplikan kode
sumber
Saya melakukan kombinasi dari apa yang diposting orang lain. Sederhana dan halus
sumber
Tidak yakin mengapa tidak ada yang mengatakan yang jelas, karena ada
scrollTo
fungsi javascript bawaan :Referensi .
sumber
Bertentangan dengan apa yang kebanyakan orang di sini menyarankan, saya akan merekomendasikan Anda lakukan menggunakan plugin jika Anda ingin menghidupkan bergerak. Hanya menghidupkan scrollTop tidak cukup untuk pengalaman pengguna yang lancar. Lihat jawaban saya di sini untuk alasannya.
Saya telah mencoba beberapa plugin selama bertahun-tahun, tetapi akhirnya menulis sendiri. Anda mungkin ingin mencobanya: jQuery.scrollable . Dengan menggunakan itu, tindakan gulir menjadi
Tapi itu belum semuanya. Kita perlu memperbaiki posisi target juga. Perhitungan yang Anda lihat di jawaban lain,
sebagian besar bekerja tetapi tidak sepenuhnya benar. Itu tidak menangani perbatasan wadah gulir dengan benar. Elemen target digulir ke atas terlalu jauh, dengan ukuran perbatasan. Ini demo.
Karenanya, cara yang lebih baik untuk menghitung posisi target adalah
Sekali lagi, lihat demo untuk melihatnya dalam aksi.
Untuk fungsi yang mengembalikan posisi target dan berfungsi untuk wadah gulir jendela dan non-jendela, jangan ragu untuk menggunakan inti ini . Komentar di sana menjelaskan bagaimana posisi dihitung.
Pada awalnya, saya telah mengatakan akan lebih baik menggunakan plugin untuk scrolling animasi . Anda tidak perlu plugin, jika Anda ingin melompat ke target tanpa transisi. Lihat jawaban oleh @ames untuk itu, tetapi pastikan Anda menghitung posisi target dengan benar jika ada perbatasan di sekitar wadah.
sumber
Untuk apa nilainya, ini adalah bagaimana saya berhasil mencapai perilaku seperti itu untuk elemen umum yang dapat berada di dalam DIV dengan menggulir (tanpa mengetahui wadah)
Ini menciptakan input palsu dari ketinggian elemen target, dan kemudian menempatkan fokus padanya, dan browser akan mengurus sisanya tidak peduli seberapa dalam dalam hierarki digulir Anda. Bekerja seperti pesona.
sumber
Saya melakukan kombinasi ini. ini bekerja untuk saya. tetapi menghadapi satu masalah jika klik pindahkan bahwa ukuran div terlalu besar sehingga gulir scenerio tidak turun ke div khusus ini.
sumber