Saya pikir akan sangat membantu untuk menggabungkan informasi terbaru tentang scroll bar, CSS, dan kompatibilitas browser.
Scroll Bar Dukungan CSS
Saat ini, tidak ada definisi palang gulir browser lintas-CSS Artikel W3C yang saya sebutkan di akhir memiliki pernyataan berikut dan baru-baru ini diperbarui (10 Okt 2014):
Beberapa browser (IE, Konqueror) mendukung properti non-standar 'scrollbar-shadow-color', 'scrollbar-track-color' dan lainnya. Properti ini ilegal: mereka tidak didefinisikan dalam spesifikasi CSS apa pun atau ditandai sebagai hak milik (dengan mengawali mereka dengan "-vendor-")
Microsoft
Seperti yang disebutkan orang lain, Microsoft mendukung gaya bilah gulir, tetapi hanya untuk IE8 dan di atasnya.
/* pseudo elements */::-webkit-scrollbar {}::-webkit-scrollbar-button {}::-webkit-scrollbar-track {}::-webkit-scrollbar-track-piece {}::-webkit-scrollbar-thumb {}::-webkit-scrollbar-corner {}::-webkit-resizer {}/* pseudo class selectors */:horizontal:vertical:decrement:increment:start:end:double-button:single-button:no-button:corner-present:window-inactive
Firefox (Gecko)
Pada versi 64 Firefox mendukung gaya scrollbar melalui properti scrollbar-color(sebagian, konsep W3C ) dan scrollbar-width( konsep W3C ). Beberapa informasi yang baik tentang implementasi dapat ditemukan dalam jawaban ini .
Styling Bilah Gulir Lintas-browser
Pustaka JavaScript dan plug-in dapat memberikan solusi lintas-browser. Ada banyak pilihan.
Daftarnya bisa berlanjut. Taruhan terbaik Anda adalah mencari-cari, meneliti, dan menguji solusi yang tersedia. Saya yakin Anda akan dapat menemukan sesuatu yang sesuai dengan kebutuhan Anda.
Cegah Styling Bilah Gulir Ilegal
Untuk berjaga-jaga jika Anda ingin mencegah gaya bilah gulir yang belum diawali dengan "-vendor" dengan benar, artikel ini di W3C menyediakan beberapa petunjuk dasar . Pada dasarnya, Anda perlu menambahkan CSS berikut ke lembar gaya pengguna yang dikaitkan dengan browser Anda. Definisi-definisi ini akan menimpa penataan bilah gulir yang tidak valid pada halaman apa pun yang Anda kunjungi.
Web telah ada selama lebih dari dua dekade, dan masih belum ada cara standar untuk gaya scrollbar. Dua puluh tahun komite standar tidak memperhatikan bahwa orang-orang menggulirkan sesuatu. Tidak ada tingkat tepuk tangan sarkastik yang lambat yang akan cukup mengungkapkan bagaimana perasaan saya. Tapi penundaan 20 tahun antara tepukan pertama dan kedua, saya pikir, cocok. Untuk beberapa perspektif, saya belum lahir ketika WWW keluar, dan saya seorang insinyur komputer sekarang. Cara untuk pergi, W3C.
Parthian Shot
3
Hanya untuk menambahkan dua sen saya: Gmail dan Youtube telah menggulirkan scrollbar bergaya di Chrome, dan yang asli di Explorer dan Firefox. Jika standar itu cukup baik untuk mereka, itu juga cukup baik untuk saya
yonatanmn
9
@ PaulD.Waite Yah, mungkin, tapi itu bisa diterapkan untuk apa pun. Dan CSS ada sebagai bahasa yang tepat sehingga desainer dapat memilih untuk menimpa default. Seluruh gagasan adalah bahwa perancang UI yang buruk dapat membuat elemen apa pun menjadi tidak intuitif, tetapi segera setelah Anda menganggap perancang situs tidak kompeten, apa gunanya mengizinkan penyesuaian halaman sama sekali?
Parthian Shot
6
@ PaulD.Waite Jelas, ini bukan salah satu dari hal-hal itu. Sebagian karena berada di area layar yang harus dikendalikan sepenuhnya oleh perancang situs, sehingga tidak menimbulkan risiko keamanan, dan sebagian karena jelas - dalam praktiknya - ini bukan masalah. Banyak situs menerapkan hacks mereka sendiri untuk membuat hal-hal yang terlihat dan berperilaku seperti scrollbar, dan mereka berfungsi dengan baik. Tidak hanya berfungsi dengan baik, dan terlihat lebih baik, tetapi orang-orang benar-benar mengerti cara menggunakannya, itulah intinya. Sayangnya, karena mereka adalah peretasan, terkadang mereka tidak bisa bermain dengan baik dengan hal-hal seperti fungsi pencetakan.
Parthian Shot
5
Jawaban ini tidak sepenuhnya menjawab pertanyaannya, yaitu bagaimana menerapkan gaya bilah gulir ke div tertentu , bukan seluruh halaman.
Saya yakin ini mungkin dapat disesuaikan, tetapi demo di halaman mereka terlalu lambat dan scrollbar terlalu sulit untuk diambil.
Angsa
4
Seperti hampir semua plugin jQuery - [bergetar] - ini sangat lambat dibandingkan dengan implementasi gulir dipercepat GPU asli, berulir,. Benar-benar tidak cocok untuk aplikasi serius, dan halangan untuk UX yang baik. Saya sarankan Anda menghindari ini, kecuali itu untuk situs web mainan.
John Weisz
2
Aku benci kalau orang menyebut javascript murni lalu BAM! plugin jquery.
Dinh Tran
Saya tidak akan merekomendasikan menggunakan nicescroll, karena menonaktifkan fungsionalitas browser. Menggulir dengan klik tengah tidak berfungsi dengan nicescroll.
Aloso
cinta niceScroll ini, itu tidak menambahkan pembungkus div di sekitar elemen yang berarti tidak merusak struktur html
datdinhquoc
11
Bilah gulir khusus tidak dimungkinkan dengan CSS, Anda memerlukan sihir JavaScript.
Beberapa browser mendukung aturan CSS non-spec, seperti ::-webkit-scrollbardi Webkit tetapi tidak ideal karena hanya akan bekerja di Webkit. IE punya sesuatu seperti itu juga, tapi saya rasa mereka tidak mendukungnya lagi.
Ditata secara konsisten dan fungsional di sebagian besar browser modern
Tidak ada ekstensi jQuery 3.000 kembung konyol baris kembung
... Tapi sayang - tidak ada!
Ya, jika pekerjaan layak dilakukan ... Saya bisa mendapatkan sesuatu dan berjalan dalam sekitar 30 menit. Penafian: ada beberapa masalah yang diketahui (dan mungkin beberapa yang belum diketahui), tapi itu membuat saya bertanya-tanya ada apa di dunia ini ada 2920 baris JS lain dalam banyak penawaran!
latar belakang: linear-gradient (ke kanan, merah, kuning);
xgqfrms
5
Saya mencoba banyak plugin, kebanyakan dari mereka tidak mendukung semua browser, saya lebih suka iScroll dan nanoScroller berfungsi untuk semua browser ini:
Terima kasih untuk demo ini. Saya pertama kali menjalankannya dengan Firefox 58.0.2 (64-bit, Windows 7 Pro / 64) dan semua bilah gulirnya identik. Kemudian dijalankan dengan Chrome Versi 65.0.3325.162 (Bangun Resmi) (64-bit) dan semuanya berbeda. Jadi (mungkin tanpa sengaja) Anda telah menunjukkan keterbatasan -webkit-pendekatan ini.
CODE-REaD
4
Firefox versi baru (64) mendukung CSS Scrollbars Module Level 1
Respons yang lebih ringkas. IMHO itu benar-benar menjawab pertanyaan OP yang bagaimana gaya hanya satu div. Bagus.
Danimal Reks
2
Ada cara di mana Anda dapat menerapkan scrollbar kustom ke elemen div kustom di dokumen HTML Anda. Berikut adalah contoh yang membantu. https://codepen.io/adeelibr/pen/dKqZNb Tapi sebagai intinya. Anda dapat melakukan hal seperti ini.
Ini adalah apa yang telah digunakan Google dalam beberapa aplikasi untuk waktu yang lama sekarang. Lihat dalam kode itu, jika Anda menerapkan kelas berikutnya, mereka entah bagaimana menyembunyikan scrollbar di Chrome, tetapi masih berfungsi.
Kelas-kelas yang jfk-scrollbar, jfk-scrollbar-borderless, danjfk-scrollbar-dark
Saya baru saja menemukan berguna untuk menghapus panah dari scrollbar. Pada 2015 ini telah digunakan di Google Maps ketika mencari tempat dalam daftar hasil di UI desain materialnya.
Saya mencoba banyak gulir JS dan CSS dan saya menemukan ini sangat mudah digunakan dan diuji pada IE dan Safari dan FF dan bekerja dengan baik
AS @ thebluefox menyarankan
Inilah cara kerjanya
Tambahkan skrip di bawah ini ke
<scripttype="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><scripttype="text/javascript"src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script><scripttype="text/javascript"src="jquery.ui.touch-punch.min.js"></script><scripttype="text/javascript"src="facescroll.js"></script><scripttype="text/javascript">
jQuery(function(){// on page DOM load
$('#demo1').alternateScroll();
$('#demo2').alternateScroll({'vertical-bar-class':'styled-v-bar','hide-bars':false});})</script>
Dan ini di sini di paragraf di mana Anda perlu menggulir
<divid="demo1"style="width:300px;height:250px;padding:8px;resize:both;overflow:scroll">
**Your Paragraph Comes Here**
</div>
Browser Webkit (seperti Chrome, Safari dan Opera) mendukung elemen pseudo ::-webkit-scrollbar yang tidak standar , yang memungkinkan kita untuk memodifikasi tampilan scrollbar browser.
Catatan: The :: - webkit-scrollbar tidak didukung oleh Firefox atau IE dan Edge.
<divclass="box"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p></div><div><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p></div>
overflow:auto;
hanya untuk itu<div>
. Adakah lebih banyak detail latar belakang?Jawaban:
Saya pikir akan sangat membantu untuk menggabungkan informasi terbaru tentang scroll bar, CSS, dan kompatibilitas browser.
Scroll Bar Dukungan CSS
Saat ini, tidak ada definisi palang gulir browser lintas-CSS Artikel W3C yang saya sebutkan di akhir memiliki pernyataan berikut dan baru-baru ini diperbarui (10 Okt 2014):
Microsoft
Seperti yang disebutkan orang lain, Microsoft mendukung gaya bilah gulir, tetapi hanya untuk IE8 dan di atasnya.
Contoh:
Chrome & Safari (WebKit)
Demikian pula, WebKit sekarang memiliki versi sendiri:
Dari bilah gulir Kustom di WebKit , CSS yang relevan:
Firefox (Gecko)
Pada versi 64 Firefox mendukung gaya scrollbar melalui properti
scrollbar-color
(sebagian, konsep W3C ) danscrollbar-width
( konsep W3C ). Beberapa informasi yang baik tentang implementasi dapat ditemukan dalam jawaban ini .Styling Bilah Gulir Lintas-browser
Pustaka JavaScript dan plug-in dapat memberikan solusi lintas-browser. Ada banyak pilihan.
Daftarnya bisa berlanjut. Taruhan terbaik Anda adalah mencari-cari, meneliti, dan menguji solusi yang tersedia. Saya yakin Anda akan dapat menemukan sesuatu yang sesuai dengan kebutuhan Anda.
Cegah Styling Bilah Gulir Ilegal
Untuk berjaga-jaga jika Anda ingin mencegah gaya bilah gulir yang belum diawali dengan "-vendor" dengan benar, artikel ini di W3C menyediakan beberapa petunjuk dasar . Pada dasarnya, Anda perlu menambahkan CSS berikut ke lembar gaya pengguna yang dikaitkan dengan browser Anda. Definisi-definisi ini akan menimpa penataan bilah gulir yang tidak valid pada halaman apa pun yang Anda kunjungi.
Duplikat atau Pertanyaan / Sumber Serupa Tidak Terhubung Di Atas
Catatan: Jawaban ini berisi informasi dari berbagai sumber. Jika sumber digunakan, maka itu juga ditautkan dalam jawaban ini.
sumber
Cobalah ini
Sumber: https://nicescroll.areaaperta.com/
Implementasi sederhana
Ini adalah scrollbar plugin jQuery, sehingga scrollbar Anda dapat dikontrol dan terlihat sama di berbagai OS.
sumber
Bilah gulir khusus tidak dimungkinkan dengan CSS, Anda memerlukan sihir JavaScript.
Beberapa browser mendukung aturan CSS non-spec, seperti
::-webkit-scrollbar
di Webkit tetapi tidak ideal karena hanya akan bekerja di Webkit. IE punya sesuatu seperti itu juga, tapi saya rasa mereka tidak mendukungnya lagi.sumber
Seperti banyak orang, saya mencari sesuatu yang:
... Tapi sayang - tidak ada!
Ya, jika pekerjaan layak dilakukan ... Saya bisa mendapatkan sesuatu dan berjalan dalam sekitar 30 menit. Penafian: ada beberapa masalah yang diketahui (dan mungkin beberapa yang belum diketahui), tapi itu membuat saya bertanya-tanya ada apa di dunia ini ada 2920 baris JS lain dalam banyak penawaran!
sumber
Saya mencoba banyak plugin, kebanyakan dari mereka tidak mendukung semua browser, saya lebih suka iScroll dan nanoScroller berfungsi untuk semua browser ini:
Tetapi iScroll tidak bekerja dengan sentuhan!
demo iScroll : http://lab.cubiq.org/iscroll/examples/simple/
demo nanoScroller : http://jamesflorentino.github.io/nanoScrollerJS/
sumber
Silakan periksa tautan ini. Contoh dengan demo kerja
Bilah Gulir CSS
sumber
-webkit-
pendekatan ini.Firefox versi baru (64) mendukung CSS Scrollbars Module Level 1
Sumber: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars
https://codepen.io/fatihhayri/pen/pqdrbd
sumber
Berikut adalah contoh webkit yang berfungsi untuk Chrome dan Safari:
CSS:
Keluaran:
sumber
memberiku ponsel / osx yang bagus seperti itu.
sumber
Ada cara di mana Anda dapat menerapkan scrollbar kustom ke elemen div kustom di dokumen HTML Anda. Berikut adalah contoh yang membantu. https://codepen.io/adeelibr/pen/dKqZNb Tapi sebagai intinya. Anda dapat melakukan hal seperti ini.
File CSS terlihat seperti ini.
sumber
Ini adalah apa yang telah digunakan Google dalam beberapa aplikasi untuk waktu yang lama sekarang. Lihat dalam kode itu, jika Anda menerapkan kelas berikutnya, mereka entah bagaimana menyembunyikan scrollbar di Chrome, tetapi masih berfungsi.
Kelas-kelas yang
jfk-scrollbar
,jfk-scrollbar-borderless
, danjfk-scrollbar-dark
http://jsfiddle.net/76kcuem0/32/
Saya baru saja menemukan berguna untuk menghapus panah dari scrollbar. Pada 2015 ini telah digunakan di Google Maps ketika mencari tempat dalam daftar hasil di UI desain materialnya.
sumber
Bilah gulir Webkit tidak mendukung sebagian besar browser.
Mendukung CHROME
Metode lain adalah Plugin Jquery Scroll Bar
Ini mendukung semua browser dan mudah diterapkan
DEMO
sumber
Saya mencoba banyak gulir JS dan CSS dan saya menemukan ini sangat mudah digunakan dan diuji pada IE dan Safari dan FF dan bekerja dengan baik
AS @ thebluefox menyarankan
Inilah cara kerjanya
Tambahkan skrip di bawah ini ke
Dan ini di sini di paragraf di mana Anda perlu menggulir
Untuk lebih jelasnya kunjungi halaman plugin
Bilah gulir Kustom FaceScroll
Semoga ini bisa membantu
sumber
Bagi orang-orang masih mencari solusi yang baik hanya saya menemukan plugin ini simplebar
Dalam kasus saya, saya mencari solusi reactJS, penulis juga menyediakan pembungkus untuk reaksi, sudut, vue dan contoh-contoh selanjutnya
sumber
Browser Webkit (seperti Chrome, Safari dan Opera) mendukung elemen pseudo ::-webkit-scrollbar yang tidak standar , yang memungkinkan kita untuk memodifikasi tampilan scrollbar browser.
Catatan: The :: - webkit-scrollbar tidak didukung oleh Firefox atau IE dan Edge.
Referensi: Cara Membuat Scrollbar Kustom
sumber
Gunakan Hanya CSS yang berfungsi di Firefox +64
Info lebih lanjut: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars
sumber
Misalkan Anda memiliki div sebagai
Terapkan Gaya CSS sebagai
Gulir yang dihasilkan akan muncul sebagai
sumber
Atau gunakan sesuatu seperti ini:
Dan menginisialisasi:
Dan sesuaikan:
sumber