asimryu

scroll, localstorage

Nov 29th, 2017
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.21 KB | None | 0 0
  1. <h2>뉴스리스트</h2>
  2. <p class="text-right" style="position: fixed;bottom: 0;">
  3.     <a href="javascript:setLocalStorageValue();" class="btn btn-primary">
  4.         <i class="fa fa-pencil"></i>
  5.     locaStorage에 페이지, 스크롤 저장</a>
  6.     <a href="javascript:clearLocalStorageValue();" class="btn btn-primary">
  7.         <i class="fa fa-pencil"></i>
  8.     locaStorage 삭제</a>
  9.     <a href="pages/write.php" class="btn btn-primary">
  10.         <i class="fa fa-pencil"></i>
  11.     글쓰기</a>
  12. </p>
  13. <table id="newslist" class="table">
  14.     <tr class="active">
  15.         <td>ID</td>
  16.         <td>제목</td>
  17.         <td>날짜</td>
  18.     </tr>
  19. </table>
  20. <p style="margin-bottom:30px;">
  21.     <a href="javascript:getNews();" class="btn btn-default btn-more col-xs-12">더보기</a>
  22. </p>
  23. <script>
  24.     var page = 1;
  25.     function getNews() {
  26.         $.getJSON("includes/getnews.php?page=" + page, function(json){
  27.             if( ! json ) return;
  28.             var trs = "";
  29.             for(var i=0; i<json.length; i++){
  30.                 trs += "<tr>";
  31.                 trs += "<td>" + json[i].id + "</td>";
  32.                 trs += "<td>" + json[i].title + "</td>";
  33.                 trs += "<td>" + json[i].wdate + "</td>";
  34.                 trs += "</tr>";
  35.             }
  36.             $("#newslist tr:last").after(trs);
  37.             page++; //page = page + 1
  38.         });
  39.     }
  40.     getNews();
  41.  
  42.     $(window).scroll(function(){
  43.         if( $(window).scrollTop() + $(window).height() == $(document).height() ) {
  44.             getNews();
  45.         }
  46.     });
  47.  
  48. $(document).ready(function() {
  49.         //문서를 다 읽고 나서 로컬스토리지에 저장된 scrollTop과 page 값을 읽어옴
  50.         var oldScroll = localStorage.getItem("scrollTop");
  51.         var oldPage = localStorage.getItem("page");
  52.         console.log(oldPage);
  53.  
  54.         if (oldPage != "undefined") {
  55.             var oldPage = parseInt(oldPage,10);
  56.             if( oldPage ) {
  57.                 for(var j=1;j<=oldPage;j++) {
  58.                     getNews();         
  59.                 }
  60.             }
  61.         }
  62.  
  63.         if (oldScroll != "undefined") {
  64.             $(window).scrollTop(oldScroll);
  65.         }
  66.  
  67. });
  68.  
  69.  
  70. function setLocalStorageValue() {
  71.  
  72.  //스크롤 위치를 로컬스토리지에 scrollTop로 저장
  73.         localStorage.setItem('scrollTop', $(this).scrollTop() );
  74.  
  75.  //현재 목록에 추가한 페이지를 로컬스토리지에 page로 저장, 단 page++ 때문에 1 빼줌
  76.         localStorage.setItem('page', page-1 );
  77.  
  78. }
  79.  
  80. function clearLocalStorageValue(){
  81.     localStorage.clear();
  82. }
  83. </script>
Add Comment
Please, Sign In to add comment