jsPanel是一款可以拖拽和最大化最小化的多功能浮动面板jQuery插件。该面板使用了jQuery UI的功能,它可以和Bootstrap或Foundation框架结合使用,功能非常强大。

该面板可以作为浮动面板,可拖拽面板,可缩放面板,模态窗口,提示对话框来使用。通过配置参数可以在顶部或底部设置面板工具栏。它支持从右向左的文字书写,支持13种不同的主题效果。

安装

可以通过npm或bower来安装jsPanel浮动面板插件。

bower install jspanel
pm install jspanel                  
                

使用方法

jsPanel要求jQuery2.0以上版本,jQuery UI ≥ 1.9.2(建议使用1.11.4版本),jQuery UI Touch Punch用于移动触摸的支持。

调用jsPanel

可以通过$.jsPanel();方法来创建一个最基本的jsPanel面板。

$.jsPanel();           
                

得到类似下图的效果:

jsPanel浮动面板效果-1

也可以在创建面板的同时传入一些配置参数:

$.jsPanel({
    contentAjax: {
        url:      'files/summits.html',
        autoload: true,
        done:     function(){
            this.content.mCustomScrollbar({
                theme: 'dark',
                scrollButtons:{ enable: true }
            });
        }
    },
    contentSize: {width: 550, height: 300},
    theme:       'royalblue filledlight',
    headerTitle: 'Some peaks I climbed',
    callback:    function() {
        this.content.css('padding', '10px');
    }
});          
                

得到类似下图的效果:

jsPanel浮动面板效果-2

配置参数

jsPanel浮动面板插件的默认配置参数如下:

$.jsPanel.defaults = {
    "autoclose": false,
    "border": false,
    "callback": false,
    "container": 'body',
    "content": false,
    "contentAjax": false,
    "contentIframe": false,
    "contentOverflow": 'hidden',
    "contentSize": {
        width: 400,
        height: 200
    },
    "custom": false,
    "dblclicks": false,
    "draggable": {
        handle: 'div.jsPanel-hdr, div.jsPanel-ftr',
        opacity: 0.8
    },
    "footerToolbar": false
    "headerControls": {
        buttons: true,
        iconfont: 'jsglyph',
        close: false,
        maximize: false,
        minimize: false,
        normalize: false,
        smallify: false
    },
    "headerRemove": false,
    "headerTitle": 'jsPanel',
    "headerToolbar": false,
    "id": () => `jsPanel-${jsPanel.ID += 1}`,
    "maximizedMargin": {
        top: 5,
        right: 5,
        bottom: 5,
        left: 5
    },
    "onbeforeclose": false,
    "onbeforemaximize": false,
    "onbeforeminimize": false,
    "onbeforenormalize": false,
    "onclosed": false,
    "onmaximized": false,
    "onminimized": false,
    "onnormalized": false,
    "onfronted": false,
    "paneltype": false,
    "position": {
        elmt: jsP,
        my: 'center',
        at: 'center'
    },
    "resizable": {
        handles: 'n, e, s, w, ne, se, sw, nw',
        autoHide: false,
        minWidth: 40,
        minHeight: 40
    },
    "rtl": false,
    "setstatus": false,
    "show": false,
    "template": false,
    "theme": 'bluegrey'
};

// deviating defaults for modal jsPanels
$.jsPanel.modaldefaults = {
    "draggable": "disabled",
    "headerControls": {buttons: "closeonly"},
    "position": {
        my: 'center',
        at: 'center'
    },
    "resizable": "disabled",
};

// deviating defaults for jsPanel tooltips
$.jsPanel.tooltipdefaults = {
    "draggable": "disabled"
    "headerControls": {buttons: "closeonly"},
    "position": {fixed: false},
    "resizable": "disabled",
};

// deviating defaults for jsPanel hints
$.jsPanel.hintdefaults = {
    "autoclose": 8000,
    "draggable": "disabled"
    "headerControls": {buttons: "closeonly"},
    "resizable": "disabled",
};                  
                

要改变这些全局的默认配置参数可以在创建jsPanel对象时以同名参数来覆盖默认参数。如果你希望font-awesome字体图标作为面板的默认图标,可以使用下面的方法来修改配置参数:

$.jsPanel.defaults.headerControls.iconfont = 'font-awesome';                  
                

jsPanel的可用事件和方法请参考它的官方主页:http://jspanel.de/