Bagaimana cara menggunakan jquery untuk menggulir ke bawah hingga ke bawah iframe atau halaman?
224
Jika Anda ingin gulir animasi lambat yang bagus, untuk setiap jangkar dengan href="#bottom"
ini akan menggulir Anda ke bawah:
$("a[href='#bottom']").click(function() {
$("html, body").animate({ scrollTop: $(document).height() }, "slow");
return false;
});
Jangan ragu untuk mengganti pemilih.
scrollTop () mengembalikan jumlah piksel yang disembunyikan dari tampilan dari area yang dapat digulir, jadi berikan:
akan benar-benar melampaui bagian bawah halaman. Agar scroll benar-benar 'berhenti' di bagian bawah halaman, ketinggian jendela browser saat ini perlu dikurangi. Ini akan memungkinkan penggunaan pelonggaran jika diperlukan, sehingga menjadi:
sumber
easeOutQuint
memerlukan plugin, jQuery sendiri hanya memilikilinear
danswing
.<!DOCTYPE html>
Chrome pada, Chrome akan mengembalikan nilai yang sama persis untuk tinggi jendela dan dokumen, dalam hal ini$(document).height()-$(window).height()
akan selalu kembali 0. Lihat di sini: stackoverflow.com/questions/12103208/…Sebagai contoh:
sumber
Setelah utas ini tidak berhasil bagi saya untuk kebutuhan spesifik saya (menggulir ke dalam elemen tertentu, dalam kasus saya sebuah textarea), saya menemukan ini di luar yang luar biasa, yang dapat terbukti bermanfaat bagi orang lain yang membaca diskusi ini:
Alternatif di planetcloud
Karena saya sudah memiliki versi cache dari objek jQuery saya (
myPanel
kode di bawah ini adalah objek jQuery), kode yang saya tambahkan ke event handler saya hanyalah ini:(terima kasih Ben)
sumber
var d = $('#mydiv'); d.scrollTop (d[0].scrollHeight - d.height ());
Fungsi sederhana yang melompat (langsung menggulir) ke bagian bawah seluruh halaman. Menggunakan built-in
.scrollTop()
. Saya belum mencoba menyesuaikan ini agar berfungsi dengan elemen halaman individual.sumber
$(document).scrollTop($(document).height());
Yang ini bekerja untuk saya:
sumber
Jika Anda tidak peduli dengan animasi, maka Anda tidak harus mendapatkan ketinggian elemen. Paling tidak di semua browser yang saya coba, jika Anda memberikan
scrollTop
angka yang lebih besar dari maksimum, itu hanya akan gulir ke bawah. Jadi berikan jumlah terbesar yang mungkin:Jika Anda ingin menggulir halaman, daripada beberapa elemen dengan scrollbar, buat saja
myScrollingElement
sama dengan 'body, html'.Karena saya perlu melakukan ini di beberapa tempat, saya telah menulis fungsi jQuery yang cepat dan kotor untuk membuatnya lebih nyaman, seperti ini:
Jadi saya bisa melakukan ini ketika saya menambahkan beberapa hal:
sumber
Skrip yang disebutkan dalam jawaban sebelumnya, seperti:
atau
$(window).scrollTop($(document).height());
tidak akan berfungsi di Chrome dan akan gelisah di Safari jika
html
tag di CSS memilikioverflow: auto;
properti yang disetel. Butuh hampir satu jam untuk mencari tahu.sumber
Saya menggunakan kode ini untuk menggulir obrolan ketika pesan baru tiba.
sumber