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

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

QA

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

본문

안녕하세요. 

게시판 리스트에서

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

뒤로 가기 버튼을 누르면

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

 

더보기 버튼을 눌러서 

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

 

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

아이폰 에선 잘 되는데

안드로이드가 문제네요 ㅠ

 

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

 

    
<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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,127 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT