게시판 리스트 뒤로가기 질문

게시판 리스트 뒤로가기 질문

QA

게시판 리스트 뒤로가기 질문

답변 1

본문

안녕하세요. 

게시판 리스트에서

제목을 눌러서 내용을 확인 후 

뒤로 가기 버튼을 누르면

최상단 언저리로 돌아가 버립니다.

 

더보기 버튼을 눌러서 

아래로 쭉 내리는 스킨을 사용중인데요

 

이것때문에 문제가 되는건지.. 

아이폰 에선 잘 되는데

안드로이드가 문제네요 ㅠ

 

소스는 아래와같습니다..

 

    
<div class="moreBar moreBtm">불러오는 중</div>
<div class="scrollTop btmScroll"><i class="fa fa-arrow-down"></i> 마우스 스크롤 (다음글 불러오기)</div>
<script>
$(function(){
    var total_page = parseInt("<?=$total_page?>") || 0;
    var now_page = parseInt("<?=$page?>") || 1;
    var roll_page = now_page;
    var throttleTime = 250;
    $(window).ready(function(){
        if(now_page != 1){
            $(".topScroll").show();
        }
        if(roll_page != total_page){
            $(".btmScroll").show();
        }
    });
    var throttle = function(func, limit) {
      var lastFunc
      var lastRan
      return function() {
        var context = this
        var args = arguments
        if (!lastRan) {
          func.apply(context, args)
          lastRan = Date.now()
        } else {
          clearTimeout(lastFunc)
          lastFunc = setTimeout(function() {
            if ((Date.now() - lastRan) >= limit) {
              func.apply(context, args)
              lastRan = Date.now()
            }
          }, limit - (Date.now() - lastRan));
        }
      }
    };
    window.addEventListener('scroll', throttle(function(e){
        var $window= $(window);
        var chkBtm= parseInt($(document).height()) - $("#ft").outerHeight();
        var scrollTop= $window.scrollTop();
        var agent = navigator.userAgent.toLowerCase();
        if (agent.indexOf("safari") != -1) {
            //사파리
             chkBtm -= parseInt(window.innerHeight ? window.innerHeight : $window.height());
        } else {
             chkBtm -= parseInt($window.height());
        }        if(chkBtm <= scrollTop){
            roll_page++;
            if(roll_page <= total_page){
                callContent(roll_page,'append');
            }
        }else if(scrollTop == 0){
            now_page--;
            if(now_page > 0){
                callContent(now_page,'prepend');
            }
        }
    }, throttleTime), false);
    function callContent(a,b){
        if(b=='append'){
            $(".moreBtm").slideDown();
        }else{
            $(".moreTop").slideDown();
        }
        var url = "<?=G5_BBS_URL?>/board.php?bo_table=<?=$bo_table?>&page="+a;
        var tbody = "";
        var thtml = "";
        $.ajax({
            type:"POST",
            url:url,
            dataType : "html",
            success: function(html){
                
                tbody = html.split('<!-- ajax list start -->');
                thtml = tbody[1].split('<!-- ajax list end -->');
                setTimeout(function() { 
                    if(b=='append'){
                        $("#gall_ul").append(thtml[0]);
                    }else{
                        $("#gall_ul").prepend(thtml[0]);
                    }
                    $(".moreBar").slideUp();
                    
                    if(now_page == 1){
                        $(".topScroll").slideUp();
                    }
                    if(roll_page >= total_page){
                        $(".btmScroll").slideUp();
                    }
                }, 0);
                
            },
            error: function(xhr, status, error) {
                alert(error);
            }  
        });
    }
});
</script>

이 질문에 댓글 쓰기 :

답변 1

ㅇㅣ문제는 일반 자바스크립트나 제이쿼리로는 어렵고 뷰나 리액트를 써야되요 리액트에보면 스크룰 이동했을때 초기화 안되게 하는 방법이 있어요 그러니까 백그라운드로 해서 넘겨와도 그대로 남는게 있어요 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 61,345
© SIRSOFT
현재 페이지 제일 처음으로