Source: LAF/widgets/scrollbars.js

/**
 * Styles scrollbars for all elements, and enabled 3-finger scrolling on the
 * body element.
 *
 * @name Lens.LAF.Scrollbars
 * @namespace
 */
define(["lib/jquery", "common/util/dom_utils", "Components/scrollable"],
function($,           DOMUtils,                Scrollable) {

    "use strict";

    var enabled = false;

    var bodyScrollable = Scrollable($(window));

    var Scrollbars = /** @lends Lens.LAF.Scrollbars */ {
        /**
         * Enables scrollbar styling and body scrollability
         */
        enable: function() {
            DOMUtils.addStylesheet("LAF/widgets/scrollbars.less");
            if(enabled){
                bodyScrollable.enable();
            } else {
                $(function(){ bodyScrollable.enable();} );
            }
            enabled = true;
        },

        /**
         * Disables scrollbar styling and body scrollability
         */
        disable: function() {
            DOMUtils.removeStylesheet("LAF/widgets/scrollbars.less");
            bodyScrollable.disable();
            enabled = false;
        },

        /**
         * Returns true iff this LAF module is enabled
         * @return {Boolean}
         * @memberOf Lens.LAF.Scrollbars
         */
        enabled: function() {
            return enabled;
        },

        /**
         * Enables body scrollability
         */
        enableBodyScroll: function() {
            bodyScrollable.enable();
        },

        /**
         * Disables body scrollability
         */
        disableBodyScroll: function() {
            bodyScrollable.disable();
        },

        onBodyScroll: function(callback){
            bodyScrollable.onScroll(callback);
        }
    };

    Scrollbars.enable();
    Lens._addMember(Scrollbars, "Scrollbars", Lens.LAF);
    return Scrollbars;
});