단일 페이지를 탐색하는 이전 및 다음 버튼

Ellouise

여전히 멍청하지만 천천히 가고 있습니다. 일련의 div, 모두 동일한 클래스가 있고 클릭하면 다음 또는 이전 div의 맨 위로 스크롤되는 이전 및 다음 버튼이 있습니다. 내 헤더가 그 아래로 스크롤되는 div를 숨기지 않도록 오프셋을 설정하고 싶습니다. 어떻게해야할지 모르겠습니다. 아래 코드.

 <button class="prev link js-prev js-scroll-to">Previous</button>
 <button class="next link js-next">Next</button>
<script>
$('.js-scroll-to').click(function(e) {

    target = $($(this).attr('href'));

    if (target.offset()) {
        $('html, body').animate({scrollTop: target.offset().top + 'px'}, 1000);
    }

    e.preventDefault();
});



$('.js-next').click(function(e) {

  var selected = $(".js-list-item.js-current-panel");
  var anchors = $(".js-list-item");

  var pos = anchors.index(selected);
  var next = anchors.get(pos+1);
  var prev = anchors.get(pos-1);
  
  target = $(next);
  
  $(selected).removeClass("js-current-panel");
  $(next).addClass("js-current-panel");
  
    if (target.offset()) {
        $('html, body').animate({scrollTop: target.offset().top + 'px'}, 1000);
    }
 

    e.preventDefault();
});


$('.js-prev').click(function(e) {

  var selected = $(".js-list-item.js-current-panel");
  var anchors = $(".js-list-item");

  var pos = anchors.index(selected);
  var next = anchors.get(pos+1);
  var prev = anchors.get(pos-1);
  
  target = $(prev);
  
    $(selected).removeClass("js-current-panel");
  $(prev).addClass("js-current-panel");
  
  if (target.offset()) {
        $('html, body').animate({scrollTop: target.offset().top + 'px'}, 1000);
    }
  
  
    e.preventDefault();
});
</script>
lxmmxl56

귀하의 경우에는 애니메이션 스크롤 코드에 바로 오프셋을 추가 할 수 있다고 생각합니다 (탐색 막대의 높이와 약간의 여백을 뺀 값).

$('html, body').animate({scrollTop: target.offset().top - 54 + 'px'}, 1000);

일반적으로 div 자체에 고정하는 대신 앵커로 사용할 span 클래스를 추가하여 JS 스크롤없이이 작업을 수행합니다. 누군가가 앵커 포인트에 직접 링크하는 경우에도 작동합니다.

이렇게하면 앵커의 상대 위치를 사용하여 탐색 모음의 높이에 대한 오프셋을 설정할 수 있습니다.

이 경우 다음과 같은 div가있을 것입니다.

<div class="js-list-item js-current-panel">
 content
</div><div class="js-list-item">
 content
</div><div class="js-list-item">
 content
</div>

다음과 같이 변경하겠습니다.

<span class="anchor js-list-item js-current-panel"></span>
<div class="content">
 content
<span class="anchor js-list-item"></span>
</div><div class="content">
 content
<span class="anchor js-list-item"></span>
</div><div class="content">
 content
</div>

일부 CSS를 사용하여 새 앵커를 배치합니다 (상단은 탐색 모음 높이에 따라 다름).

.anchor {
 position: relative;
 top: -54px;
}

앵커 위치를 보여주는 추가 CSS 예제 :

<style type="text/css">
  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 44px;
    background: black;
  }
  .main {
    margin-top: 54px;
  }
  .js-list-item {
    display: inline-block;
    width: 5px;
    height: 5px;
    background: blue;
    position: relative;
    top: -54px;
  }
  .content {
    background: red;
    width: 100%;
    height: 500px;
    margin-bottom: 25px;
  }
</style>
<div class="nav">
  <button class="prev link js-prev js-scroll-to">Previous</button>
  <button class="next link js-next">Next</button>
</div>
<div class="main">
  <span class="js-list-item js-current-panel"></span>
  <div id="one" class="content"></div>
  <span class="js-list-item"></span>
  <div id="two" class="content"></div>
  <span class="js-list-item"></span>
  <div id="three" class="content"></div>
  <span class="js-list-item"></span>
  <div id="four" class="content"></div>
  <span class="js-list-item"></span>
  <div id="five" class="content"></div>
  <span class="js-list-item"></span>
  <div id="six" class="content"></div>
  <span class="js-list-item"></span>
  <div id="seven" class="content"></div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script>
  $('.js-scroll-to').click(function(e) {

    target = $($(this).attr('href'));

    if (target.offset()) {
      $('html, body').animate({scrollTop: target.offset().top + 'px'}, 1000);
    }

    e.preventDefault();
  });



  $('.js-next').click(function(e) {

    var selected = $(".js-list-item.js-current-panel");
    var anchors = $(".js-list-item");

    var pos = anchors.index(selected);
    var next = anchors.get(pos+1);
    var prev = anchors.get(pos-1);

    target = $(next);

    $(selected).removeClass("js-current-panel");
    $(next).addClass("js-current-panel");

    if (target.offset()) {
      $('html, body').animate({scrollTop: target.offset().top + 'px'}, 1000);
    }


    e.preventDefault();
  });


  $('.js-prev').click(function(e) {

    var selected = $(".js-list-item.js-current-panel");
    var anchors = $(".js-list-item");

    var pos = anchors.index(selected);
    var next = anchors.get(pos+1);
    var prev = anchors.get(pos-1);

    target = $(prev);

    $(selected).removeClass("js-current-panel");
    $(prev).addClass("js-current-panel");

    if (target.offset()) {
      $('html, body').animate({scrollTop: target.offset().top + 'px'}, 1000);
    }


    e.preventDefault();
  });
</script>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다음 및 이전 버튼을 사용하여 목록 탐색

분류에서Dev

다음 및 이전 버튼을 사용하여 목록 탐색

분류에서Dev

잘못된 길을 탐색하는 다음 페이지 버튼

분류에서Dev

fancybox 다음 및 이전 버튼이 모바일에서 작동하지 않음

분류에서Dev

fancybox 다음 및 이전 버튼이 모바일에서 작동하지 않음

분류에서Dev

이전 및 다음 버튼?

분류에서Dev

이전 및 다음 버튼

분류에서Dev

이전 버튼 및 다음 버튼 변경 탐색 바 사용 방법

분류에서Dev

내 이전 및 다음 버튼은 단어 본문이 큰 다음 페이지로 이동할 때 위아래로 변동하는 경향이 있습니다.

분류에서Dev

VB.NET의 "이전"및 "다음"버튼을 사용하여 페이지를 표시하고 순회하는 URL을 통한 간단한 루프

분류에서Dev

이전 및 다음 버튼이있는 텍스트 상자에 단일 날짜 표시

분류에서Dev

Owl carousel 탐색 버튼에 "border"를 추가하려면 어떻게합니까 (다음 및 이전 주변)

분류에서Dev

안드로이드는 탐색 바를 초기로 설정하고 음악이 끝나면 재생 버튼을 일시 중지하도록 전환합니다.

분류에서Dev

이전 및 다음 버튼을 사용하여 드롭 다운 목록에서 항목 탐색

분류에서Dev

다음 페이지로 이동하기위한 winAPI의 다음 및 이전 제어 버튼 (C ++)

분류에서Dev

Xcode는 레이블, 버튼, 탐색 모음 및 이미지를 픽셀 화로 표시합니다.

분류에서Dev

jQuery 페이지 매김 다음 및 이전 버튼이 작동하지 않습니다.

분류에서Dev

jQuery 페이지 매김 다음 및 이전 버튼이 작동하지 않습니다.

분류에서Dev

이전 및 다음 버튼이 작동하도록하기

분류에서Dev

이전 및 다음 버튼이있는 원형 쇼

분류에서Dev

페이지의 내용을 유지하면서 이전 및 다음 버튼을 만드는 방법

분류에서Dev

JFileChooser 및 다음-이전 버튼

분류에서Dev

이전 및 다음 버튼이있는 표에 주를 표시하는 방법

분류에서Dev

모든 페이지 탐색 모음 버튼을 표시하는 방법

분류에서Dev

탐색 모음에 이미지 및 버튼 디자인을 추가하는 방법은 무엇입니까?

분류에서Dev

dotCMS의 단일 페이지 탐색 모음에 여러 페이지를 추가하는 방법

분류에서Dev

Phonegap 모바일 앱에서 Android의 이온 탐색 모음 및 하드웨어 버튼을 동기화하는 방법

분류에서Dev

jQuery로 위아래로 움직이는 클릭시 간단한 수직 이전 및 다음 버튼 코드

분류에서Dev

다음 및 이전 버튼을 클릭하여 텍스트 상자에서 요일을 변경하는 방법

Related 관련 기사

  1. 1

    다음 및 이전 버튼을 사용하여 목록 탐색

  2. 2

    다음 및 이전 버튼을 사용하여 목록 탐색

  3. 3

    잘못된 길을 탐색하는 다음 페이지 버튼

  4. 4

    fancybox 다음 및 이전 버튼이 모바일에서 작동하지 않음

  5. 5

    fancybox 다음 및 이전 버튼이 모바일에서 작동하지 않음

  6. 6

    이전 및 다음 버튼?

  7. 7

    이전 및 다음 버튼

  8. 8

    이전 버튼 및 다음 버튼 변경 탐색 바 사용 방법

  9. 9

    내 이전 및 다음 버튼은 단어 본문이 큰 다음 페이지로 이동할 때 위아래로 변동하는 경향이 있습니다.

  10. 10

    VB.NET의 "이전"및 "다음"버튼을 사용하여 페이지를 표시하고 순회하는 URL을 통한 간단한 루프

  11. 11

    이전 및 다음 버튼이있는 텍스트 상자에 단일 날짜 표시

  12. 12

    Owl carousel 탐색 버튼에 "border"를 추가하려면 어떻게합니까 (다음 및 이전 주변)

  13. 13

    안드로이드는 탐색 바를 초기로 설정하고 음악이 끝나면 재생 버튼을 일시 중지하도록 전환합니다.

  14. 14

    이전 및 다음 버튼을 사용하여 드롭 다운 목록에서 항목 탐색

  15. 15

    다음 페이지로 이동하기위한 winAPI의 다음 및 이전 제어 버튼 (C ++)

  16. 16

    Xcode는 레이블, 버튼, 탐색 모음 및 이미지를 픽셀 화로 표시합니다.

  17. 17

    jQuery 페이지 매김 다음 및 이전 버튼이 작동하지 않습니다.

  18. 18

    jQuery 페이지 매김 다음 및 이전 버튼이 작동하지 않습니다.

  19. 19

    이전 및 다음 버튼이 작동하도록하기

  20. 20

    이전 및 다음 버튼이있는 원형 쇼

  21. 21

    페이지의 내용을 유지하면서 이전 및 다음 버튼을 만드는 방법

  22. 22

    JFileChooser 및 다음-이전 버튼

  23. 23

    이전 및 다음 버튼이있는 표에 주를 표시하는 방법

  24. 24

    모든 페이지 탐색 모음 버튼을 표시하는 방법

  25. 25

    탐색 모음에 이미지 및 버튼 디자인을 추가하는 방법은 무엇입니까?

  26. 26

    dotCMS의 단일 페이지 탐색 모음에 여러 페이지를 추가하는 방법

  27. 27

    Phonegap 모바일 앱에서 Android의 이온 탐색 모음 및 하드웨어 버튼을 동기화하는 방법

  28. 28

    jQuery로 위아래로 움직이는 클릭시 간단한 수직 이전 및 다음 버튼 코드

  29. 29

    다음 및 이전 버튼을 클릭하여 텍스트 상자에서 요일을 변경하는 방법

뜨겁다태그

보관