Открыть меню    

jScrollPane стилизуем скроллбар как в MAC OS

Недавно я получил вопрос о том, как можно создать скроллбар похожий на скроллбар в Mac OS – темно-серый закругленный прямоугольник и проявляется только когда курсор мышки наведен на прокручиваемый контент. Если вы пользователь Mac OSX, то вы неоднократно могли наблюдать данный скроллбар – особенно в браузере safari. Если нет, то ниже приведен скрин со скроллбаром.

стилизованный скроллбар Когда я получил запрос, первой идеей было воспользоваться плагином jScrollPane и показывать/скрывать скроллбар при наведении курсора мыши на контент. Просто. jScrollPane мощный и простой плагин для стилизации скроллбара. jScrollPane стабильно работает со всеми современными браузера и даже под некоторыми устаревшими.

скроллбар в mac os

Итак, в сегодняшней статье пойдет речь о том, как можно реализовать скроллбар, внешний вид которого в точности повторяет дизайн скроллбара от MAC OS.

jScrollPane очень легко внедрить. Во-первых, вам необходимо подключить требуемые javascript и css файлы:

HTML

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="script/jquery.mousewheel.js"></script>
<script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>

Нам понадобится библиотека jQuery, плагин jScrollPane и mousewheel.js для поддержки колесика мышки.

Затем нам надо создать div и присвоить ему какой-либо класс, для дальнейшей инициализации в jQuery.

HTML

<div class="scroll-pane">
... content here ...
</div>

Стили будут браться из стилевого файла к плагину jScrollPane, но нам понадобится внести некоторые изменения:

CSS

.jspVerticalBar
{
    position: absolute;
    top: 0;
    right: 0;
    width: 8px;
    height: 100%;
}

.jspHorizontalBar
{
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 8px;
}

.jspVerticalBar *,
.jspHorizontalBar *
{
    margin: 0;
    padding: 0;
    /* fix IE 7,8 to work with jQuery fadeIn/Out */
    opacity:inherit;
    filter:inherit;
}

.jspDrag
{
    background: #666;
    position: relative;
    top: 0;
    left: 0;
    cursor: pointer;
    border-radius:5px;
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
    -ms-border-radius:5px;
    -o-border-radius:5px;
}

При помощи события jsp-initialised скрываем скроллбар при первой загрузки страницы. Затем мы по наведению мышки (событие hover ) на скроллбар делаем его видимым, а по отведению курсора мыши от скроллбара делаем его невидимым.

jQuery

$(function()
{

    var bars = '.jspHorizontalBar, .jspVerticalBar';

    $('.scroll-pane').bind('jsp-initialised', function (event, isScrollable) {

        //скрываем скроллбар при первой загрузки
        $(this).find(bars).hide();

    }).jScrollPane().hover(

        //показываем скрываем скроллбар
        function () {
            $(this).find(bars).stop().fadeTo('fast', 0.9);
        },
        function () {
            $(this).find(bars).stop().fadeTo('fast', 0);
        }

    );

});
jsp-initialised [event, isScrollable] – вызывается, когда элемент инициализирован.

Заключение

Изменить плагин бывает довольно трудно, однако, как вы видите, не в нашем случае. Иногда вы можете создать свой собственный уникальный плагин, изменив уже существующий плагин. Таким образом, исследовав множество jQuery плагинов и не найдя подходящего, возьмите за основу наиболее близкий плагин и измените его под себя.

источник

Комментарии к статье