Backbone.js - 后退按钮恢复滚动位置

时间:2012-06-19 17:05:20

标签: backbone.js

我有一个用backbone.js编写的Web应用程序。假设我有一页搜索结果,用户滚动到搜索结果的底部。用户单击最后一个搜索结果,将显示该结果的页面。

我想支持后退按钮,当用户点击“返回”时,路由器会启动并重新显示搜索页面。问题是当重新渲染搜索页面时,它会再次滚动到顶部。

将结果恢复到原始位置的最佳方法是什么?

1 个答案:

答案 0 :(得分: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 );
      }
   }
});