Saya ingin dapat menggulir seluruh halaman, tetapi tanpa bilah gulir ditampilkan.
Di Google Chrome:
::-webkit-scrollbar {
display: none;
}
Tetapi Mozilla Firefox dan Internet Explorer sepertinya tidak berfungsi seperti itu.
Saya juga mencoba ini di CSS:
overflow: hidden;
Itu menyembunyikan bilah gulir, tetapi saya tidak dapat menggulir lagi.
Apakah ada cara saya bisa menghapus scrollbar sementara masih bisa menggulir seluruh halaman?
Hanya dengan CSS atau HTML saja.
sumber
!important
sehingga saya menghapus semuanya: jsfiddle.net/5GCsJ/954box-sizing: border-box; width: calc(100% + 50px);
dan nilai yang sama untuk bantalan. Tidak ada peramban yang memiliki lebar / tinggi scrollbar 50px, jadi cukup tutupi semuanya ...Mudah di WebKit, dengan gaya opsional:
sumber
cordova
aplikasi, bekerja dengan baik. harus diterapkanoverflow:scroll
ke elemen.-webkit-overflow-scrolling: touch
Ini berfungsi untuk saya dengan properti CSS sederhana:
Untuk versi Firefox yang lebih lama, gunakan:
overflow: -moz-scrollbars-none;
sumber
overflow: -moz-scrollbars-none
menyembunyikan bilah gulir di Firebox tetapi juga menonaktifkan gulir. Bisakah Anda memberikan demo di mana ini bekerja untuk Anda?-moz-scrollbars-none
properti ini dihapus untuk versi Firefox terbaru: developer.mozilla.org/en-US/docs/Web/CSS/overflow-webkit-overflow-scrolling: touch
-moz-scrollbars-none
dapat Anda gunakan@-moz-document url-prefix() { .container { overflow: hidden; } }
. Lihat stackoverflow.com/questions/952861/… .MEMPERBARUI:
Firefox sekarang mendukung menyembunyikan bilah gulir dengan CSS, sehingga semua peramban utama sekarang tercakup (Chrome, Firefox, Internet Explorer, Safari, dll.).
Cukup terapkan CSS berikut ini ke elemen yang ingin Anda hapus dari scrollbar:
Ini adalah solusi peramban lintas paling tidak hack yang saat ini saya ketahui. Lihat demo.
JAWABAN ASLI:
Inilah cara lain yang belum disebutkan. Ini sangat sederhana dan hanya melibatkan dua divs dan CSS. Tidak diperlukan JavaScript atau CSS eksklusif, dan ia berfungsi di semua browser. Tidak perlu mengatur lebar wadah secara eksplisit, sehingga membuatnya cair.
Metode ini menggunakan margin negatif untuk memindahkan bilah gulir keluar dari induk dan kemudian jumlah padding yang sama untuk mendorong konten kembali ke posisi semula. Teknik ini berfungsi untuk pengguliran vertikal, horizontal dan dua arah.
Demo:
Kode contoh untuk versi vertikal:
HTML:
CSS:
sumber
Menggunakan:
Ini adalah trik untuk agak menindih scrollbar dengan div yang tumpang tindih yang tidak memiliki bilah gulir:
Ini hanya untuk browser WebKit ... Atau Anda dapat menggunakan konten CSS khusus peramban (jika ada di masa mendatang). Setiap browser dapat memiliki properti yang berbeda dan spesifik untuk bilahnya masing-masing.
Untuk penggunaan Microsoft Edge:
-ms-overflow-style: -ms-autohiding-scrollbar;
atau-ms-overflow-style: none;
sebagai per MSDN .Tidak ada padanan untuk Firefox. Walaupun ada plugin jQuery untuk mencapai ini, http://manos.malihu.gr/tuts/jquery_custom_scrollbar.html
sumber
::-webkit-scrollbar { display: none; } .ui-content { -webkit-overflow-scrolling: touch; }
// jQuery Mobile onMobileInit ()$.mobile.touchOverflowEnabled = true;
Jawaban ini tidak termasuk kode, jadi di sini adalah solusi dari halaman :
Menurut halaman, pendekatan ini tidak perlu mengetahui lebar scrollbar sebelumnya untuk dapat bekerja dan solusinya juga bekerja untuk semua browser, dan dapat dilihat di sini .
Hal yang baik adalah bahwa Anda tidak dipaksa untuk menggunakan perbedaan padding atau lebar untuk menyembunyikan scrollbar.
Ini juga aman untuk zoom. Solusi bantalan / lebar menunjukkan bilah gulir bila diperbesar hingga minimum.
Perbaikan Firefox: http://jsbin.com/mugiqoveko/1/edit?output
sumber
::-webkit-scrollbar {}
padding-right: 150px;
perbaikan itu. Diuji dalam FF, Chrome, Safari dan Edge. Berfungsi juga dalam level zoom rendah karena bantalan kanan yang besar.html { -ms-overflow-style: none;}
. Di browser ini tidak perlu menggunakan padding-hack.overflow-y: scroll
untuk mendapatkan perilaku gulir tetapi disembunyikan (seperti Chrome) untuk membuatnya bekerja di Edge23.Cukup gunakan tiga baris berikut dan masalah Anda akan terpecahkan:
Di mana liaddshapes adalah nama div di mana gulir akan datang.
sumber
Ini berfungsi untuk saya lintas browser. Namun, ini tidak menyembunyikan bilah gulir asli di peramban seluler.
Dalam SCSS
Dalam CSS
sumber
{}
maksud dari blok bersarang ( )? Bagaimana cara menafsirkannya? Dan&
? Mungkin menguraikan jawaban Anda?&::-webkit-scrollbar
menjadi.hide-native-scrollbar::-webkit-scrollbar { }
di CSS{ width: 0; height: 0;}
untuk :: - webkit-scrollbar alih-alihdisplay: none
untuk iOS.Berikut ini berfungsi untuk saya di Microsoft, Chrome, dan Mozilla untuk elemen div tertentu:
sumber
scrollbar-width
(hanya FF) ditandai sebagai "percobaan"HTML:
CSS:
Terapkan CSS yang sesuai.
Periksa di sini (diuji di Internet Explorer dan Firefox).
sumber
Pada 11 Desember 2018 (Firefox 64 ke atas), jawaban atas pertanyaan ini memang sangat sederhana karena Firefox 64+ sekarang mengimplementasikan spec CSS Scrollbar Styling .
Cukup gunakan CSS berikut:
Firefox 64 rilis catatan di sini .
sumber
Menggunakan:
CSS
HTML
sumber
Menggunakan
Panggil fungsi-fungsi ini untuk setiap titik yang ingin Anda muat atau keluarkan atau muat ulang scrollbar. Itu masih dapat digulir di Chrome saat saya mengujinya di Chrome, tetapi saya tidak yakin dengan peramban lain.
sumber
Ini bekerja untuk saya:
sumber
Pada browser modern, Anda dapat menggunakan
wheel event
:sumber
overflow: hidden
dan kode ini, untukmat-card-content
(dalam sudut 5, tentu saja) yang dapat digulir dan ini memecahkan masalah saya. Catatan: Saya menggunakane.deltaY
sebagai sayastep
dan itu berfungsi seperti scrolling biasa, jadi saya pikir untuk scrolling normal tetapi dengan scrollbar tersembunyi, ini adalah yang paling cocok.Masalah saya: Saya tidak ingin gaya apa pun dalam konten HTML saya. Saya ingin tubuh saya langsung dapat digulir tanpa scrollbar apa pun, dan hanya gulungan vertikal, yang bekerja dengan kisi - kisi CSS untuk ukuran layar apa pun.
The box-sizing nilai dampak bantalan atau marjin solusi, mereka bekerja dengan box-sizing: konten-kotak .
Saya masih membutuhkan arahan "-moz-scrollbars-none", dan seperti gdoron dan Mr_Green, saya harus menyembunyikan scrollbar. Saya mencoba
-moz-transform
dan-moz-padding-start
, untuk memengaruhi hanya Firefox, tetapi ada efek samping responsif yang membutuhkan terlalu banyak pekerjaan.Solusi ini berfungsi untuk konten tubuh HTML dengan gaya "display: grid", dan responsif.
sumber
Menambahkan padding ke bagian dalam
div
, seperti pada jawaban yang saat ini diterima, tidak akan berfungsi jika karena alasan tertentu Anda ingin menggunakanbox-model: border-box
.Apa yang berhasil di kedua kasus adalah meningkatkan lebar bagian dalam
div
hingga 100% plus lebar scrollbar (dengan asumsioverflow: hidden
pada bagian luar).Misalnya, dalam CSS:
Dalam JavaScript, lintas-browser:
sumber
Ini adalah bagaimana saya melakukannya untuk gulir horizontal; hanya CSS dan berfungsi baik dengan kerangka kerja seperti Bootstrap / col- *. Hanya perlu dua ekstra
div
dan induk dengan satuwidth
ataumax-width
set:Anda dapat memilih teks untuk membuatnya gulir atau gulir dengan jari jika Anda memiliki layar sentuh.
Versi singkat untuk orang malas:
sumber
margin-bottom
menjadipadding-bottom
tetapi dengan nilai yang sama. Ini tidak akan memakan ruang di bawah untuk elemen di bagian bawah. Ini mencegah tumpang tindih.margin-bottom
negatif, saya pikir itu tidak dapat diubah menjadipadding-bottom
, yang tidak dapat menangani nilaiPenataan SASS berikut ini akan membuat bilah gulir Anda transparan di sebagian besar browser (Firefox tidak didukung):
sumber
Saya kebetulan mencoba solusi di atas dalam proyek saya dan untuk beberapa alasan saya tidak dapat menyembunyikan scroll bar karena posisi div. Oleh karena itu, saya memutuskan untuk menyembunyikan bilah gulir dengan memperkenalkan div yang menutupnya secara dangkal. Contoh di bawah ini untuk bilah gulir horizontal:
CSS yang sesuai adalah sebagai berikut:
sumber
Ini akan berada di badan:
Dan ini adalah CSS:
sumber
Ini adalah solusi divitis-esque yang seharusnya tidak berfungsi untuk semua peramban ...
Markupnya adalah sebagai berikut dan perlu berada di dalam sesuatu dengan posisi relatif (dan lebarnya harus diatur, misalnya 400 piksel):
CSS:
sumber
The
perfect-scrollbar
Plugin tampaknya menjadi cara untuk pergi, lihat: https://github.com/noraesae/perfect-scrollbarIni adalah solusi berbasis JavaScript yang terdokumentasi dengan baik dan lengkap untuk masalah scrollbar.
Halaman demo: http://noraesae.github.io/perfect-scrollbar/
sumber
Anda dapat menggunakan kode di bawah ini untuk menyembunyikan bilah gulir, tetapi masih dapat menggulir:
sumber
Untuk menyembunyikan bilah gulir untuk elemen dengan penggunaan konten meluap.
sumber
Jenis lain dari pendekatan peretasan adalah untuk melakukan
overflow-y: hidden
dan kemudian gulir secara manual elemen dengan sesuatu seperti ini:Ada artikel bagus tentang cara mendeteksi dan menangani
onmousewheel
peristiwa di blog deepmikoto . Ini mungkin bekerja untuk Anda, tetapi ini jelas bukan solusi yang elegan.sumber
Saya hanya ingin berbagi cuplikan gabungan untuk menyembunyikan bilah gulir yang saya gunakan saat mengembangkan. Ini adalah kumpulan beberapa cuplikan yang ditemukan di Internet yang berfungsi untuk saya:
sumber
Biola kerja sederhana lainnya :
Overflow tersembunyi di wadah induk, dan overflow otomatis di wadah anak. Sederhana.
sumber
Solusi rumit ini bekerja bahkan pada browser web IE lama
Ini solusi untuk [ scrollbar vertikal ]
Coba saja: jsfiddle
sumber
Cukup atur lebar lebar anak menjadi 100%, padding hingga 15 piksel,
overflow-x
untuk menggulir danoverflow:hidden
untuk induk dan lebar apa pun yang Anda inginkan.Ini berfungsi dengan baik di semua browser utama, termasuk Internet Explorer dan Edge dengan pengecualian Internet Explorer 8 dan yang lebih rendah.
sumber