PopEasy模式窗口中的JScrollPane(自定义滚动条)

时间:2014-06-24 12:43:13

标签: jquery modal-dialog scrollbar jscrollpane

第一次发帖:-)我到处寻找答案,我似乎无法找到答案。我不是一个jQuery专家,但确实可以解决这个问题。

PopEasy:http://thomasgrauer.com/popeasy JScrollPane:http://jscrollpane.kelvinluck.com/index.html

我正在尝试让JSscrollPane在PopEasy模式窗口内工作。术语可能已关闭,但我认为我需要在模态加载后初始化它?

这是PopEasy模式的代码:基本上你单击一个链接,模态显示:

$('.modalLink').modal({
    trigger: '.modalLink',
    olay:'div.overlay',
    modals:'div.modal',
    animationEffect: 'fadeIn',
    animationSpeed: 300,
    moveModalSpeed: 'slow',
    openOnLoad: false,
    docClose: true,
    closeByEscape: false,
    moveOnScroll: false,
    resizeWindow: true,
    close:'.close-button'
});

通常,JScrollpane只是:

$('.scroll-pane').jScrollPane();

我假设(并且希望)答案很简单,我错过了一些小事,但我已经尝试了一些我还不完全理解的事情:

jQuery(document).on('click','.modalLink',function($){
    $('.right-side').jScrollPane({});
});

我需要帮助: - (

谢谢你们!

1 个答案:

答案 0 :(得分:1)

由于jScrollPane在初始化时计算容器,你想在加载模态后进行init / reinit,因为在加载模态后,PopEasy没有用于回调的API,这有点棘手。

简单但很差的方法是添加超时,如下所示:

jQuery(document).on('click','.modalLink',function($){
    setTimeout(function(){
        $('.right-side').jScrollPane({});
    }, 500);
});

另一种方法是在动画完成后添加回调功能以便运行回调。 如果您需要重新初始化,则需要访问jScrollPane API,如下所示:

$(function() {
    var pane = $('.right-side');
    pane.jScrollPane({});
    var api = pane.data('jsp');

    jQuery(document).on('click','.modalLink',function($){
        setTimeout(function(){
            api.reinitialise();
        }, 500);
    });
});