2

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();

これにより、スクロール バーが再初期化されますが、ユーザーはページの先頭に移動します。窓は同じ位置に置いておきたい。解決策はありますか?

4

4 に答える 4

0

スクロールバーの位置を維持したい場合は、

      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();

この助けを願っています:)

于 2011-12-04T22:36:30.933 に答える
0

ドキュメントから:

  • managePosition [boolean]-スクロールペインのコンテンツを再初期化したときにその位置を維持するかどうか-コンテンツを追加してもスクロールしないようにする(デフォルトはtrue)

に設定しfalseます。

于 2011-12-04T22:37:07.297 に答える
0

必要なデータを確実に取得していますか。これが機能するかどうかはわかりませんが、試してみましたか:

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

scroll_bar.data('jsp');

そして、通常は body>div セレクターではなく .scroll-pane クラスを使用しませんか?

多分それは次のようなものであるべきだと思います:

var api = scroll_bar.data('jsp');
api.reinitialise();
于 2011-12-04T20:42:18.523 に答える
0

上記の後に再初期化に問題がある場合:

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 クラスを保持していると仮定します)。

于 2014-06-07T12:31:12.757 に答える