繁体   English   中英

当Jquery jScrollPane重新初始化时,它回到顶部。 为什么?

[英]When Jquery jScrollPane is reinitialized, it goes back to the top. Why?

我正在使用jquery库jScrollPane设置整个页面的自定义滚动条。

scroll_bar = $('body>div').jScrollPane(
     {
        autoReinitialise: true,
            showArrows: true,
            maintainPosition: false
     }).data('jsp');

当新内容添加到页面底部时(用户位于页面底部),我致电:

scroll_bar.getContentPane().find(".content").append(some_content);
scroll_bar.reinitialise();

这将重新初始化滚动条,但会将用户带到页面顶部。 我希望窗户留在同一地点。 有什么办法吗?

对于以上问题之后需要重新初始化的人:

function reinitialiseScrollpane() {

        var settings = {
            maintainPosition: true,
            // add your settings here, below are examples
            arrowButtonSpeed: 1,
            showArrows: true,
            animateScroll: true 
        };

    pane.jScrollPane(settings); 
    var api = pane.data('jsp');
    api.getContentPane().append();
    api.reinitialise();

}

重要的部分是使用设置。 如果不重新初始化设置,则可能会出现故障。 我已将其放入函数调用中,因此只要在任何滚动窗格中更改了内容,您都只需调用此函数(假设您将.scroll-pane类保留在所有区域中)

您确定要获取所需的数据吗,我不知道这是否可行,但是您是否尝试过:

scroll_bar = $('body>div').jScrollPane(
   {
      autoReinitialise: true,
          showArrows: true,
          maintainPosition: false
   });

scroll_bar.data('jsp');

并且您通常不会为此使用.scroll-pane类,而不是body> div选择器吗?

我认为也许应该是这样的:

var api = scroll_bar.data('jsp');
api.reinitialise();

如果您希望滚动条保持其位置,则应设置

      maintainPosition: true

另外,尝试重新构建如下代码:

            // Use jscrollpane api function to enable reinitialization
            var scrollelement = $('body>div').jScrollPane({ maintainPosition: true});
            var api = scrollelement.data('jsp');
            api.getContentPane().html(result);


            // Needed to apply jscrollpane after change new container type
            api.reinitialise();

希望这个帮助:)

文档

  • maintenancePosition [boolean]-在重新初始化它时是否希望滚动窗格的内容保持其位置-因此添加更多内容时它不会滚动(默认为true)

您将其设置为false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM