2012-06-19 40 views
3

我已经有了一个用backbone.js编写的web应用程序。假设我有一页搜索结果,用户将滚动到搜索结果的底部。用户点击最后的搜索结果,并显示该结果页面。Backbone.js - 后退按钮恢复滚动位置

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

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

回答

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); 
     } 
    } 
}); 
+0

而是结合窗口滚动事件(管理多个视图的滚动位置时引起的问题),我选择了抢pageYOffset +保存在改变改为查看。 – sgb

相关问题