Есть ли способ изменить стиль скроллера по умолчанию в редакторе react-ace?

Я создаю веб-страницу, на которой редактор react-ace занимает 50% ширины страницы и 90% высоты страницы. После того, как в редакторе появится вертикальная прокрутка при написании некоторого кода, я хочу стилизовать показанную вертикальную прокрутку по умолчанию.

Я могу получить экземпляр редактора, используя -

const reactAceComponent = this.refs.reactAceComponent;
const editor = reactAceComponent.editor;

поместив ссылку reactAceComponent на Editor.

И после этого я могу изменить высоту и ширину скроллера и т. д. Но как мне стилизовать сам скроллер?

Предположим, я хочу дать скроллеру класс «style-scroller» и сделать что-то вроде этого:

#style-scroller::-webkit-scrollbar-track
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    background-color: #F5F5F5;
    border-radius: 10px;
}

#style-scroller::-webkit-scrollbar
{
    width: 10px;
    background-color: #F5F5F5;
}

#style-scroller::-webkit-scrollbar-thumb
{
    background-color: #3366FF;
    border-radius: 10px;
    background-image: -webkit-linear-gradient(0deg,
                                              rgba(255, 255, 255, 0.5) 25%,
                                              transparent 25%,
                                              transparent 50%,
                                              rgba(255, 255, 255, 0.5) 50%,
                                              rgba(255, 255, 255, 0.5) 75%,
                                              transparent 75%,
                                              transparent)
}

Можно ли придать скроллеру индивидуальный стиль? С чего мне вообще начать? Пожалуйста помогите.


person Chitresh    schedule 30.04.2019    source источник


Ответы (1)


Вы можете использовать класс .ace_scrollbar для таргетинга полос прокрутки в ace, а .ace_scrollbar-v, .ace_scrollbar-h — только для вертикальных или горизонтальных полос прокрутки (но псевдокласс :horizontal работает и для этого).

Более простая альтернатива, которая используется в облаке9 https://github.com/c9/core/blob/c4d1c59dc8d6619bdca3dbe740291cd5cd26352c/plugins/c9.ide.ace/scrollbar.js#L22 использует только ::-webkit-scrollbar для таргетинга на все полосы прокрутки

person a user    schedule 30.04.2019