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