scroll.js 1.42 KB
define('scroll', ['perfect-scrollbar', 'css!ps_css'], function() {
	//force 强制刷新 重置Scroll
    var Scroll = function(selector, force) {
        var scroll = Scroll._scrolls[selector];

        if (!selector || scroll && !force) return scroll;

        this.selector = selector;

        return function() {
            var args = [].slice.apply(arguments);

            Scroll._scrolls[selector] = $(args[0]).perfectScrollbar(function() {
                return $.extend({
				  	wheelSpeed: 1,
					suppressScrollX: true,
					wheelPropagation: false,
					swipePropagation: false,
					theme: 'lighter'
                }, args[1]);
            }());
        }.apply(this, arguments);
    };

    Scroll._scrolls = {};

	Scroll.scrollTo = function(key, scrollTop) {
        var container = document.querySelector(key);
        
        container.scrollTop = scrollTop; 
        
		$(container).perfectScrollbar("update");
	};

    Scroll.destroy = function(key) {
    	var scroll = this._scrolls[key];
		var $container = !scroll ? $(key) : this._scrolls[key];
		
        $container.perfectScrollbar('destroy');
        $container.find(".ps-scrollbar").remove();
    	delete this._scrolls[key];
    };

    Scroll.resize = function(key) {
        var scroll = this._scrolls[key];

        scroll = scroll || $(key);

        if(scroll.perfectScrollbar) {
            scroll.perfectScrollbar('update');
        }
    };
    
    return Scroll;
});