2012-06-19 2 views
3

backbone.js로 작성된 웹 응용 프로그램이 있습니다. 검색 결과 페이지가 있고 사용자가 검색 결과의 맨 아래로 스크롤한다고 가정 해보십시오. 사용자가 마지막 검색 결과를 클릭하면 그 결과에 대한 페이지가 표시됩니다.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