Saya mencoba menggulir ke bawah 100px setiap kali pengguna mendekati bagian atas dokumen.
Saya memiliki fungsi yang dieksekusi ketika pengguna mendekati bagian atas dokumen, tetapi fungsi .scrollTo tidak berfungsi.
Saya memasang peringatan setelah dan sebelum untuk memeriksa apakah itu benar-benar garis atau tidak yang menghentikannya dan hanya peringatan pertama yang berbunyi, berikut kodenya:
alert("starting");
$.scrollTo({ top: '+=100px', left: '+=0px' }, 800);
alert("finished");
Saya tahu saya memiliki halaman jquery yang ditautkan dengan benar karena saya menggunakan banyak fungsi jquery lainnya dan semuanya berfungsi dengan baik. Saya juga mencoba menghapus 'px' dari atas dan sepertinya tidak ada bedanya.
Jawaban:
Jika tidak berhasil, mengapa Anda tidak mencoba menggunakan metode scrollTop jQuery?
Jika Anda ingin menggulir dengan lancar, Anda dapat menggunakan fungsi javascript dasar setTimeout / setInterval untuk membuatnya menggulir dengan kelipatan 1px selama jangka waktu tertentu.
sumber
sumber
html, body
alih - alih hanya html?body
istirahat ini di Chrome 4: stackoverflow.com/questions/1890995/…scrollTop: 0
juga bekerja dengan baik. Tapi durasinya menurun. Berfungsi dengan baik jika kecepatan disetel 1000jQuery sekarang mendukung scrollTop sebagai variabel animasi.
Anda tidak perlu lagi setTimeout / setInterval untuk menggulir dengan lancar.
sumber
$("#id").offset().top
?Untuk mengatasi masalah
html
vsbody
, saya memperbaikinya dengan tidak menganimasikan css secara langsung tetapi memanggilwindow.scrollTo();
setiap langkah:Ini bekerja dengan baik tanpa ada penyegaran karena menggunakan JavaScript lintas browser.
Lihat http://james.padolsey.com/javascript/fun-with-jquerys-animate/ untuk informasi lebih lanjut tentang apa yang dapat Anda lakukan dengan fungsi animasi jQuery.
sumber
window.pageYOffset
ke$(window).scrollTop()
danwindow.scrollTo(0, val)
untuk$(window).scrollTop(val)
jadi saya tidak perlu khawatir tentang kompatibilitas browser.Sepertinya sintaks Anda sedikit salah ... Saya berasumsi berdasarkan kode Anda bahwa Anda mencoba menggulir ke bawah 100px dalam 800ms, jika demikian maka ini berfungsi (menggunakan scrollTo 1.4.1):
sumber
Sebenarnya seperti itu
akan bekerja dengan baik dan mendukung bantalan. Anda juga dapat mendukung margin dengan mudah - untuk penyelesaiannya lihat di bawah
sumber