我有一个用backbone.js 编写的Web 应用程序。假设我有一页搜索结果,并且用户滚动到搜索结果的底部。用户单击最后一个搜索结果,然后显示该结果的页面。
我想支持后退按钮,当用户单击“后退”时,路由器会启动并重新显示搜索页面。问题是当搜索页面被重新渲染时,它再次滚动到顶部。
将结果恢复到原始位置的最佳方法是什么?
我有一个用backbone.js 编写的Web 应用程序。假设我有一页搜索结果,并且用户滚动到搜索结果的底部。用户单击最后一个搜索结果,然后显示该结果的页面。
我想支持后退按钮,当用户单击“后退”时,路由器会启动并重新显示搜索页面。问题是当搜索页面被重新渲染时,它再次滚动到顶部。
将结果恢复到原始位置的最佳方法是什么?
考虑跟踪视图中的滚动位置。然后在一个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 );
}
}
});