Добротный плагин jQuery для изменения стандартной полосы прокрутки в браузерах
25 Июня 2015

Добротный плагин jQuery для изменения стандартной полосы прокрутки в браузерах

В различных браузерах по-разному реализованы полосы прокрутки. Они могут отличаться друг от друга как внешне, так и по реализации эффекта прокрутки, где-то скролл делается плавно, например, в последнем IE или Firefox, а в Chrome прокрутка колесом идет без всяких замедлений. Иногда хочется сделать красиво и со своими эффеками.

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

Возможности плагина

  • Поддержка горизонтальной и вертикальной полос прокрутки
  • Поддержка фреймов, DIV-ов в теле страницы документа
  • Совместимость со всеми десктопными браузерами: Firefox 4+, Chrome, Safari 5+ 4+ (Win / Mac), Opera 10+, IE 6+
  • Совместимость с мобильными устройствами: Ipad / iPhone / IPod, Android 2.2+, Blackberry, Windows Phone 7.5
  • Совместимость со всеми сенсорными устройства: Ipad, Android, Window

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

Инициализация плагина для всей страницы сайта с настройками по умолчанию:

$(document).ready(function() {  
    $("html").niceScroll();
});

Дополнительная конфигурация

$("html").niceScroll({
    cursorcolor: "#424242", // изменение цвета курсора
    cursoropacitymin: 0, // изменение прозрачности курсора opacity, в диапазоне от 1 до 0
    cursoropacitymax: 1, // изменение прозрачности курсора в активном состоянии, в диапазоне от 1 до 0
    cursorwidth: "5px", // ширина полосы прокрутки в пикселях
    cursorborder: "1px solid #fff", // стиль рамки для курсора
    cursorborderradius: "5px", // скругление углов
    zindex: "auto" | , // изменеие позиционирования z-index для скроллбара
    scrollspeed: 60, // скорость прокрутки
    mousescrollstep: 40, // шаг колеса прокрутки у мыши
    touchbehavior: false, // enable cursor-drag scrolling like touch devices in desktop computer
    hwacceleration: true, // use hardware accelerated scroll when supported
    boxzoom: false, // enable zoom for box content
    dblclickzoom: true, // (only when boxzoom=true) zoom activated when double click on box
    gesturezoom: true, // (only when boxzoom=true and with touch devices) zoom activated when pinch out/in on box
    grabcursorenabled: true // (only when touchbehavior=true) display "grab" icon
    autohidemode: true, // how hide the scrollbar works, possible values: 
      true | // hide when no scrolling
      "cursor" | // only cursor hidden
      false | // do not hide,
      "leave" | // hide only if pointer leaves content
      "hidden" | // hide always
      "scroll", // show only on scroll          
    background: "", // change css for rail background
    iframeautoresize: true, // autoresize iframe on load event
    cursorminheight: 32, // set the minimum cursor height (pixel)
    preservenativescrolling: true, // you can scroll native scrollable areas with mouse, bubbling mouse wheel event
    railoffset: false, // you can add offset top/left for rail position
    bouncescroll: false, // (only hw accell) enable scroll bouncing at the end of content as mobile-like 
    spacebarenabled: true, // enable page down scrolling when space bar has pressed
    railpadding: { top: 0, right: 0, left: 0, bottom: 0 }, // set padding for rail bar
    disableoutline: true, // for chrome browser, disable outline (orange highlight) when selecting a div with nicescroll
    horizrailenabled: true, // nicescroll can manage horizontal scroll
    railalign: right, // alignment of vertical rail
    railvalign: bottom, // alignment of horizontal rail
    enabletranslate3d: true, // nicescroll can use css translate to scroll content
    enablemousewheel: true, // nicescroll can manage mouse wheel events
    enablekeyboard: true, // nicescroll can manage keyboard events
    smoothscroll: true, // scroll with ease movement
    sensitiverail: true, // click on rail make a scroll
    enablemouselockapi: true, // can use mouse caption lock API (same issue on object dragging)
    cursorfixedheight: false, // set fixed height for cursor in pixel
    hidecursordelay: 400, // set the delay in microseconds to fading out scrollbars
    directionlockdeadzone: 6, // dead zone in pixels for direction lock activation
    nativeparentscrolling: true, // detect bottom of content and let parent to scroll, as native scroll does
    enablescrollonselection: true, // enable auto-scrolling of content when selection text
    cursordragspeed: 0.3, // speed of selection when dragged with cursor
    rtlmode: "auto", // horizontal div scrolling starts at left side
    cursordragontouch: false, // drag cursor in touch / touchbehavior mode also
    oneaxismousemode: "auto", // it permits horizontal scrolling with mousewheel on horizontal only content, if false (vertical-only) mousewheel don't scroll horizontally, if value is auto detects two-axis mouse
    scriptpath: "" // define custom path for boxmode icons ("" => same script path)
    preventmultitouchscrolling: true // prevent scrolling on multitouch events
});

Комментарии

Использую в своей работе