簡體   English   中英

根據父級中div的位置滾動父div溢出

[英]Scrolling parent div overflow based on position of div within parent

我有3個頁面部分:

<div class="container" id="main-container">
    <div class="section" id="profile">
      Hello World
    </div>
    <div class="section" id="projects">
      Hello World 2
    </div>
    <div class="section" id="contact">
      Hello World 3
    </div>
  </div>

我的導航中有3個鏈接:

<body onresize="scroll()">
  <div class="nav">
    <div class="nav-link" id="profile">
      <a>
        Profile
      </a>
    </div>
    <div class="nav-link" id="projects">
      <a>
        Projects
      </a>
    </div>
    <div class="nav-link" id="contact">
      <a>
        Contact
      </a>
    </div>
  </div>

#main-container有溢出滾動,每個部分占用頁面寬度和高度的100%。

我嘗試將其設置為當單擊其中一個鏈接時,它會將滾動效果設置為該部分的動畫:

$(document).ready(function () {
  $('.nav-link').on('click', function () {
    if ($(window).width() < 768) {
      let section = $(".section#"+$(this).attr('id')).position();
      $('#main-container').animate({
          scrollTop: section.top
      }, 500);
    }
  });
});

但是這不起作用, position()的值根據用戶滾動到的position()改變。 如何根據#main-container獲取$main-container部分的滾動位置? 以及如何動畫滾動到它?

試試offset()

let section = $(“。section#”+ $(this).attr('id'))。offset();

let section = $(".section#"+$(this).attr('id')).offset();
  let scrollTop = $('#main-container').scrollTop() + section.top
  console.log(scrollTop);
  $('#main-container').animate({
      scrollTop: scrollTop
  }, 500);

這是我改變它以使其工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM