Bagaimana saya bisa menentukan ketinggian scrollbar horizontal, atau lebar yang vertikal, di JavaScript?
javascript
scrollbar
glmxndr
sumber
sumber
Jawaban:
Dari Alexandre Gomes Blog saya belum mencobanya. Beri tahu saya jika itu berhasil untuk Anda.
sumber
Menggunakan jQuery, Anda dapat mempersingkat jawaban Matthew Vines ke:
sumber
Ini hanya skrip yang saya temukan, yang berfungsi di browser webkit ... :)
Versi yang diperkecil:
Dan Anda harus menyebutnya ketika dokumen siap ... jadi
Diuji 2012-03-28 pada Windows 7 dalam FF, Chrome, IE & Safari terbaru dan 100% berfungsi.
sumber: http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth
sumber
width
akan selalu === tidak terdefinisi saat fungsi pertama kali dipanggil. Pada panggilan berikutnya ke fungsiwidth
sudah diatur, pemeriksaan itu hanya mencegah perhitungan berjalan lagi dengan sia-sia.width
, melainkan menghitung ulang setiap kali. Ini bekerja, tetapi sangat tidak efisien. Tolong bantu dunia dan gunakan versi yang benar di plugin Alman's.jika Anda mencari operasi sederhana, cukup campur dom js dan jquery,
mengembalikan ukuran bilah gulir halaman saat ini. (jika terlihat atau yang lain akan mengembalikan 0)
sumber
sumber
Bagi saya, cara yang paling bermanfaat adalah
dengan JavaScript vanilla.
sumber
document.documentElement.clientWidth
.documentElement
lebih jelas dan bersih mengekspresikan niat mendapatkan<html>
elemen.Saya menemukan solusi sederhana yang berfungsi untuk elemen di dalam halaman, bukan halaman itu sendiri:
$('#element')[0].offsetHeight - $('#element')[0].clientHeight
Ini mengembalikan ketinggian scrollbar sumbu x.
sumber
Dari blog David Walsh :
Memberi saya 17 di situs web saya, 14 di sini di Stackoverflow.
sumber
Jika Anda sudah memiliki elemen dengan scrollbar, gunakan:
Jika tidak ada horzintscrollbar, fungsi ini akan mengembalikan 0
sumber
Anda dapat menentukan
window
scroll bar dengandocument
seperti di bawah ini menggunakan jquery + javascript:sumber
Cara
Antiscroll.js
melakukannya dalam kode itu adalah:Kode berasal dari sini: https://github.com/LearnBoost/antiscroll/blob/master/antiscroll.js#L447
sumber
Diuji di Chrome, FF, IE8, IE11.
sumber
Ini seharusnya melakukan trik, bukan?
sumber
Buat yang kosong
div
dan pastikan itu ada di semua halaman (yaitu dengan meletakkannya diheader
templat).Berikan gaya ini:
Kemudian cukup periksa ukurannya
#scrollbar-helper
dengan Javascript:Tidak perlu menghitung apa pun, karena ini
div
akan selalu memilikiwidth
danheight
dariscrollbar
.Satu-satunya downside adalah bahwa akan ada kosong
div
di template Anda .. Tetapi di sisi lain, file Javascript Anda akan lebih bersih, karena ini hanya membutuhkan 1 atau 2 baris kode.sumber
sumber
Sebagian besar browser menggunakan 15px untuk lebar scrollbar
sumber
Dengan jquery (hanya diuji di firefox):
Tapi saya sebenarnya lebih suka jawaban Steve.
sumber
Ini adalah jawaban yang bagus: https://stackoverflow.com/a/986977/5914609
Namun dalam kasus saya itu tidak berhasil. Dan saya menghabiskan berjam-jam mencari solusinya.
Akhirnya saya telah kembali ke kode di atas dan menambahkan! Penting untuk setiap gaya. Dan itu berhasil.
Saya tidak bisa menambahkan komentar di bawah jawaban asli. Jadi di sini adalah perbaikannya:
sumber
Keputusan seumur hidup ini akan memberi Anda kesempatan untuk menemukan lebar peramban scrollY (JavaScript vanilla). Dengan menggunakan contoh ini Anda bisa mendapatkan lebar gulir pada elemen apa pun termasuk elemen -elemen yang tidak harus memiliki gulir sesuai dengan konsepsi desain Anda saat ini ,:
sumber
Inilah solusi yang lebih ringkas dan mudah dibaca berdasarkan perbedaan lebar offset:
Lihat JSFiddle .
sumber
Sudah dikodekan di perpustakaan saya jadi ini dia:
Saya harus menyebutkan bahwa jQuery
$(window).width()
juga bisa digunakanwindow.document.documentElement.clientWidth
.Tidak berfungsi jika Anda membuka alat pengembang di firefox di sebelah kanan tetapi mengatasinya jika jendela devs dibuka di bagian bawah!
window.screen
didukung quirksmode.org !Selamat bersenang-senang!
sumber
Tampaknya berfungsi, tetapi mungkin ada solusi sederhana yang berfungsi di semua browser?
sumber