테스트 사이트 - 개발 중인 베타 버전입니다

게시판 리스트 뒤로가기 질문 채택완료

다나한포션 5년 전 조회 4,086

안녕하세요. 

게시판 리스트에서

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

뒤로 가기 버튼을 누르면

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

 

더보기 버튼을 눌러서 

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

 

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

아이폰 에선 잘 되는데

안드로이드가 문제네요 ㅠ

 

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

 

    </p>

<p><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();

        }</p>

<p>        if(roll_page != total_page){

            $(".btmScroll").show();

        }

    });</p>

<p>    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();</p>

<p>        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){</p>

<p>        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();

                    }</p>

<p>                    if(roll_page >= total_page){

                        $(".btmScroll").slideUp();

                    }

                }, 0);

                

            },

            error: function(xhr, status, error) {

                alert(error);

            }  

        });

    }

});

</script></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인