4

backbone.js で記述された Web アプリケーションがあります。検索結果のページがあり、ユーザーが検索結果の一番下までスクロールするとします。ユーザーが最後の検索結果をクリックすると、その結果のページが表示されます。

戻るボタンをサポートしたいのですが、ユーザーが「戻る」をクリックすると、ルーターが起動して検索ページを再表示します。問題は、検索ページが再レンダリングされたときに、再び上部にスクロールされることです。

結果を元の位置に戻す最良の方法は何ですか?

4

1 に答える 1

1

ビュー内のスクロール位置を追跡することを検討してください。次に、renderまたはrouteページの位置を変更します

View = Backbone.View.extend({
   initialize: function () {
      var self = this;
      $( window ).on( 'scroll', function () {
         self.position = this.pageYOffset;
      });

   },
   render: function () {
      // render code
      if ( this.position ) {
        window.scrollBy( 0, this.position );
      }
   }
});
于 2012-06-19T17:22:24.857 に答える