Saya sedang membangun situs web yang saya terbitkan dengan div
. Ketika saya me-refresh halaman setelah digulir ke posisi X, maka halaman tersebut dimuat dengan posisi gulir sebagai X.
Bagaimana saya bisa memaksa halaman untuk digulir ke atas di halaman refresh?
Apa yang bisa saya pikirkan adalah beberapa JS atau jQuery dijalankan sebagai
onLoad()
fungsi halaman untuk SET halaman gulir ke atas. Tetapi saya tidak tahu bagaimana saya bisa melakukan itu.Pilihan yang lebih baik adalah jika ada beberapa properti atau sesuatu untuk memiliki halaman dimuat dengan posisi gulir sebagai default (yaitu di bagian atas) yang akan menjadi jenis seperti memuat halaman , daripada me-refresh halaman .
Jawaban:
Anda dapat melakukannya menggunakan metode scrollTop pada DOM ready :
sumber
Untuk implementasi JavaScript sederhana :
sumber
Safari 11.0.3
dan berfungsi baik untuk saya, yang mana yang Anda gunakan?return
?document.querySelector('html').style.scrollBehavior = '';
mungkin juga diperlukan. Jika disetel kesmooth
, itu mungkin tidak sampai ke atas sebelum halaman dimuat ulang.Jawabannya di sini tidak berfungsi untuk safari, dokumen. Sudah sering dipecat terlalu dini.
Seharusnya menggunakan
beforeunload
acara yang mencegah Anda dari melakukan beberapasetTimeout
sumber
Sekali lagi, jawaban terbaik adalah:
(itu untuk non-jQuery, cari jika Anda mencari metode JQ)
SUNTING: sedikit kesalahan "onbeforunload" :) Chrome dan browser lainnya "ingat" posisi gulir terakhir sebelum bongkar, jadi jika Anda menetapkan nilainya menjadi 0,0 tepat sebelum bongkar halaman Anda, mereka akan mengingat 0,0 dan menang gulir kembali ke tempat scrollbar itu :)
sumber
document.documentElement.scrollTop
harus bekerja. Saya biasanya menggunakan keduanya.Periksa
.scrollTop()
fungsi jQuery di siniItu akan terlihat seperti
sumber
Anda juga bisa mencoba
Jika Anda ingin menggulir pada posisi x daripada Anda dapat mengubah nilai 0 ke x.
sumber
Alih-alih
location.reload()
, cukup gunakanlocation.href = location.href
. Itu tidak akan menggulir ke posisi sebelumnya sepertilocation.reload()
halnya.Catatan: Ini tidak akan dimuat ulang jika ada # di URL
sumber
Masukkan skrip di atas dalam
<head>
tag html Anda. Tidak yakin bagaimana perilaku satu halaman aplikasi! Tapi pasti berfungsi seperti pesona di halaman biasa.sumber
Jawabannya di sini (menggulir ke dalam
$(document).ready
) tidak berfungsi jika ada video di halaman tersebut. Dalam hal ini halaman digulir setelah acara ini dipecat, menimpa pekerjaan kami.Jawaban terbaik seharusnya:
sumber
tidak berfungsi untuk saya karena google chrome hanya akan menggulir ke bawah setelah halaman selesai memuat. Apa yang saya gunakan adalah
// Ini memuat halaman dengan # di bagian akhir. Jadi itu akan selalu memuat di atas.
sumber
Untuk mengatur ulang gulir jendela kembali ke atas,
$(window).scrollTop(0)
dalam acara beforeunload melakukan trik, namun, saya menguji di Chrome 80 itu akan kembali ke lokasi lama setelah memuat ulang.Untuk mencegahnya, atur
history.scrollRestoration
ke"manual"
.sumber
Jawaban supercalifragilisticexpialidocious adalah:
tambahkan ini di bagian atas file js atau tag skrip Anda
sumber