2012-01-14 5 views
2

JScrollPane JQuery 플러그인을 사용하고 있습니다.jScrollPane 스크롤 위치를 저장하는 방법은 무엇입니까?

클라이언트가 사용자가 항목 목록을 스크롤하여 하나를 클릭 한 다음 브라우저에서 다시 클릭하거나 메뉴에서 해당 페이지로 돌아갈 때 스크롤 상자가 같은 위치에있을 수 있는지 여부를 묻습니다. : S

이것은 플러그인에 의해 계산 된 "상단"CSS 속성을 mouseUp의 쿠키에 저장하는 것을 의미합니다 (슬라이더를 놓을 때 "상단"의 값 저장). 그런 다음 반환 할 때 확인할 수 있습니다. 해당 쿠키를 찾아 해당 위치로 설정하십시오.

어쨌든이 아이디어는 어디서부터 시작해야할지 모르겠습니다.

답변 해 주셔서 감사합니다. :)

+1

_ 아이디어를 바로 구현하십시오. 쿠키가 아닌'localStorage'를 사용하고'onunload' 리스너를 사용하여 브라우저 재로드 페이지를 다시 버튼으로 만드는 대신에 하지만 캐시 된 버전을 사용하십시오 ._하지만 진지하게, 가능하다면 고객에게 단지 좋은 생각이 아니라는 것을 확신 시키십시오. 함께 작동하는 jScrollPane .. – c69

+0

이론적 인 해결책 (작동 함) : http://benalman.com/projects/jquery-bbq-plugin/을 사용하여 스크롤 막대의 숫자 위치와 함께 URL에 해시 (#)를 추가하십시오 . 그런 다음 jquery를 사용하여 url에서 해시를 가져 와서 올바른 위치로 스크롤하십시오. HTML5 기록 api + js를 사용하여 URL을 변경할 수도 있습니다. https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history –

답변

3

여기 내 해결책이 있습니다.

스크롤 막대의 위치가 localstorage에 저장되고, 페이지가 새로 고침되거나 다른 페이지에서 다시로드 될 때, localstorage가 0보다 큰 값을 가지면 스크롤 막대의 맨 위를 나타냅니다 (기본값, 스크롤되지 않은 위치), 해당 위치로 스크롤합니다.

var element = $(".scroll-pane").jScrollPane({showArrows:true}); 
if(element != undefined) { 
    var api = element.data("jsp"); 
    $(function() { 
    if(parseInt(localStorage.getItem("ScrollPosition")) > 0) { 
     api.scrollToY(parseInt(localStorage.getItem("ScrollPosition"))) 
    } 
    $(".scroll-pane").bind("jsp-scroll-y", function(event, scrollPositionY, isAtTop, isAtBottom) { 
     localStorage.setItem("ScrollPosition", scrollPositionY) 
    }).jScrollPane() 
    }) 
} 
; 
+0

우수! 감사 ;) – RevConcept

관련 문제