Пользовательская полоса прокрутки CSS для Firefox
Я хочу настроить полосу прокрутки с помощью CSS.
Я использую этот код webkit CSS, который хорошо работает для Safari и Chrome:
::-webkit-scrollbar {
width: 15px;
height: 15px;
}
::-webkit-scrollbar-track-piece {
background-color: #C2D2E4;
}
::-webkit-scrollbar-thumb:vertical {
height: 30px;
background-color: #0A4C95;
}
Как я могу сделать то же самое в Firefox?
Я знаю, что могу легко сделать это с помощью jQuery, но я бы предпочел сделать это с чистым CSS, если это выполнимо.
был бы благодарен за чей-то экспертный совет!
6 ответов
нет Firefox, эквивалентного ::-webkit-scrollbar
и друзей.
вам придется придерживаться JavaScript.
многие люди хотели бы эту функцию, см.:https://bugzilla.mozilla.org/show_bug.cgi?id=77790
этот отчет прошу точно то же самое, что вы просите:https://bugzilla.mozilla.org/show_bug.cgi?id=547260
Он был закрыт как дубликат первого отчета, который я связал к.
что касается замены JavaScript, вы можете попробовать:
- https://github.com/noraesae/perfect-scrollbar
- https://github.com/jnicol/trackpad-scroll-emulator
- https://github.com/vitch/jScrollPane (но он устарел и, видимо, лаваш...)
могу я предложить альтернативу?
никаких сценариев вообще, только стандартизированные стили css и немного творчества. Короткий ответ-маскировка частей существующей полосы прокрутки браузера, что означает, что вы сохраняете все его функции.
.scroll_content {
position: relative;
width: 400px;
height: 414px;
top: -17px;
padding: 20px 10px 20px 10px;
overflow-y: auto;
}
для демонстрации и немного более глубокого объяснения, проверьте здесь...
Я думал, что поделюсь своими выводами, если кто-то рассматривает плагин JQuery для выполнения этой работы.
Я JQuery Пользовательская Полоса Прокрутки идти. Это довольно причудливо и делает некоторую плавную прокрутку (с инерцией прокрутки) и имеет множество параметров, которые вы можете настроить, но это закончилось слишком интенсивным процессором для меня (и это добавляет изрядную сумму к DOM).
теперь я даю Идеальная Полоса Прокрутки идти. Это простой и легкий (6KB) и пока все идет нормально. Это не интенсивный процессор вообще (насколько я могу судить) и добавляет очень мало к вашему DOM. У него есть только несколько параметров для настройки (wheelSpeed и wheelPropagation), но это все, что мне нужно, и он хорошо обрабатывает обновления содержимого прокрутки (например, загрузка изображений).
P.S. Я быстро взглянул на JScrollPane, но @simone прав, он немного устарел и Пита.
2018 Firefox полосы прокрутки по-прежнему выглядит так же плохо, как 1992, это Пита, но теперь мы можем использовать css фильтры на них.
вот пример с зеленоватым кросс-браузером, совместимым с hommous оттенком сверху.
использовать мудро.
div {
max-height: 200px;
max-width: 80%;
overflow-x: hidden;
overflow-y: scroll;
filter: sepia(100%) saturate(360%) grayscale(0) contrast(140%) hue-rotate(56deg) invert(16%)
}
<div>
<ul>
<li><a href="/wiki/Chapati" title="Chapati">Chapati</a>, unleavened flatbread from the <a href="/wiki/Indian_subcontinent" title="Indian subcontinent">Indian subcontinent</a></li>
<li><a href="/wiki/Wheat_tortilla" title="Wheat tortilla">Flour tortilla</a>, a thin unleavened flatbread from <a href="/wiki/Mexico" title="Mexico">Mexico</a></li>
<li><a href="/wiki/Focaccia" title="Focaccia">Focaccia</a>, a flat oven-baked bread from <a href="/wiki/Italy" title="Italy">Italy</a></li>
<li><a href="/wiki/Injera" title="Injera">Injera</a>, a sourdough-risen flatbread from <a href="/wiki/East_Africa" title="East Africa">East Africa</a></li>
<li><a href="/wiki/Khachapuri" title="Khachapuri">Khachapuri</a>, a breaded cheese dish from <a href="/wiki/Georgia_(country)" title="Georgia (country)">Georgia</a></li>
<li><a href="/wiki/Khubz" title="Khubz">Khubz</a>, a round bread from the <a href="/wiki/Arabian_Peninsula" title="Arabian Peninsula">Arabian Peninsula</a></li>
<li><a href="/wiki/Matnakash" title="Matnakash">Matnakash</a>, a leavened bread from <a href="/wiki/Armenia" title="Armenia">Armenia</a> (related to the <a href="/wiki/Ramadan_pita" class="mw-redirect" title="Ramadan pita">Ramadan pita</a>)</li>
<li><a href="/wiki/Naan" title="Naan">Naan</a>, a leavened, oven-baked flatbread from <a href="/wiki/Central_Asian_cuisine" class="mw-redirect" title="Central Asian cuisine">Central</a> and <a href="/wiki/South_Asian_cuisine" title="South Asian cuisine">South Asia</a></li>
<li><a href="/wiki/Pit%C4%83_de_Pecica" title="Pită de Pecica">Pită de Pecica</a>, a round bread from <a href="/wiki/Romania" title="Romania">Romania</a></li>
<li><a href="/wiki/Rghaif" class="mw-redirect" title="Rghaif">Rghaif</a>, a pancake-like bread from <a href="/wiki/Maghreb" title="Maghreb">Northwest Africa</a></li>
</ul>
</div>
@-moz-document url-prefix(http://),url-prefix(https://) {
scrollbar {
-moz-appearance: none !important;
background: rgb(0,255,0) !important;
}
thumb,scrollbarbutton {
-moz-appearance: none !important;
background-color: rgb(0,0,255) !important;
}
thumb:hover,scrollbarbutton:hover {
-moz-appearance: none !important;
background-color: rgb(255,0,0) !important;
}
scrollbarbutton {
display: none !important;
}
scrollbar[orient="vertical"] {
min-width: 15px !important;
}
}
он работает в пользовательском стиле, и, похоже, не работает на веб-страницах. Я не нашел официального направления от Mozilla по этой. Хотя это, возможно, сработало в какой-то момент, Firefox не имеет официальной поддержки для этого. Эта ошибка все еще открыта https://bugzilla.mozilla.org/show_bug.cgi?id=77790
scrollbar {
/* clear useragent default style*/
-moz-appearance: none !important;
}
/* buttons at two ends */
scrollbarbutton {
-moz-appearance: none !important;
}
/* the sliding part*/
thumb{
-moz-appearance: none !important;
}
scrollcorner {
-moz-appearance: none !important;
resize:both;
}
/* vertical or horizontal */
scrollbar[orient="vertical"] {
color:silver;
}
проверить http://codemug.com/html/custom-scrollbars-using-css/ для деталей.