Почему некорректно определяется offset().top и скролл отрабатывает не до нужной позиции?

Есть 3 блока и верхнее меню навигации, каждый пункт из которых ведёт к началу соответствующего блока. Внутри 2го блока есть тоже ссылка link3, которая в свою очередь ведёт к 3ему блоку, но по какой-то причине неправильно высчитывается offset().top и переносит не в начало блока, а куда-то ближе к концу. Как исправить?

const accItem = document.getElementsByClassName('accordionItem');
const accHD = document.getElementsByClassName('accordionItem__wrapper');
const arrow = document.querySelectorAll('.accordionItem__img');

for (i = 0; i < accHD.length; i++) {
  accHD[i].addEventListener('click', toggleItem, false);
}

function toggleItem() {
  const itemClass = this.parentNode.className;

  for (i = 0; i < accItem.length; i++) {
    accItem[i].className = 'accordionItem closeItem';
  }

  if (itemClass == 'accordionItem closeItem') {
    this.parentNode.className = 'accordionItem openItem';
  }
}
$('[href*="#"]').on('click', function(e) {
  $('html,body').stop().animate({
    scrollTop: $(this.hash).offset().top - $('.header').innerHeight()
  }, 1000);
});
nav,
ul {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}

ul {
  list-style: none;
}

li {
  margin-right: 20px;
}

hr {
  margin-top: 10px;
  margin-bottom: 10px;
}

.accordionItemHeading {
  cursor: pointer;
  padding: 10px 20px 8px 37px;
  border: 1px solid #404A9F;
  box-sizing: border-box;
  border-radius: 8px;
}

.accordionItemHeading:hover {
  border-color: #33CC66;
}

.accordionItemHeading h4 {
  font-style: normal;
  font-weight: bold;
  font-size: 16px;
  line-height: 32px;
  color: #3F3F3F;
  margin-bottom: 0;
}

.accordionItemHeading a {
  display: none;
  position: relative;
  font-style: normal;
  font-weight: normal;
  font-size: 16px;
  line-height: 32px;
  color: #33CC66;
  margin-right: 30px;
}

.accordionItemHeading a:before {
  position: absolute;
  bottom: 50%;
  transform: translateY(50%);
  left: 0;
}

.closeItem .accordionItemContent {
  height: 0px;
  transform: scaleY(0);
  display: block;
}

.openItem .accordionItemHeading {
  border-color: #33CC66;
}

.openItem .accordionItemHeading a {
  display: inline-block;
}

.openItem .accordionItemContent {
  font-size: 14px;
  line-height: 150%;
  color: #484848;
  padding: 21px 24px 29px 37px;
  width: 100%;
  margin: 0px 0px 10px 0px;
  display: block;
  transform: scaleY(1);
  transform-origin: top;
  transition: transform 0.4s ease;
  box-sizing: border-box;
  border: 1px solid #33CC66;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

@media screen and (max-width: 767px) {
  .openItem .accordionItemContent {
    padding: 15px;
  }
}

.accordionItemHeading__block {
  margin-bottom: 30px;
}

.accordionItemHeading__block span {
  display: block;
  font-style: normal;
  font-weight: bold;
  font-size: 14px;
  line-height: 170%;
  color: #9FA4CF;
  margin-bottom: 3px;
}

.accordionItemHeading__block p {
  font-style: normal;
  font-weight: normal;
  font-size: 16px;
  line-height: 170%;
  color: #3F3F3F;
}

.accordionItemHeading__block p a {
  color: #404A9F;
  text-decoration-line: underline;
}

.openItem .accordionItemHeading {
  margin: 0px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.accordionItemContent__bold p {
  font-weight: 700;
}

.accordionItemContent__red p {
  color: $red;
}

.accordionItem {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 15px;
}

.accordionItem:last-child {
  margin-bottom: 0;
}

.accordionItem__wrapper {
  position: relative;
}

.accordionItemContent p {
  margin-bottom: 15px;
  font-size: 16px;
  line-height: 21px;
}

.openItem .accordionItem__img {
  transform: rotate(90deg);
  transition: all .25s ease-in-out;
  background-color: #33CC66;
}

.openItem .accordionItemHeading {
  border-bottom: 0;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.col-lg-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.col-lg-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section>
  <header class="header">
    <nav>
      <ul>
        <li><a href="#block1">Link 1</a></li>
        <li><a href="#block2">Link 2</a></li>
        <li><a href="#block3">Link 3</a></li>
      </ul>
    </nav>
  </header>
  <main>
    <div id="block1">
      <h2>Block 1</h2>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
      in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
      sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
      dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore
      et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
      sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      <div class="accordionWrapper">
        <div class="accordionItem openItem">
          <div class="accordionItem__wrapper">
            <div class="accordionItemHeading">
              <div><a href="#block3" class="accordionItemHeading__arrange">Link 3</a>
              </div>
            </div>
          </div>
          <div class="accordionItemContent">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
            in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing
            elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
            esse cillum
          </div>
        </div>
      </div>
    </div>
    <hr />
    <div id="block2">
      <h2>Block 2</h2>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
      in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
      sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
      dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore
      et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
      sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
    </div>
    <hr />
    <div id="block3">
      <h2>Block 3</h2>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
      in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
      sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
      dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
    in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
    eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
    magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
    cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </main>
</section>


Ответы (2 шт):

Автор решения: V-tyna

Вместо .on() используй addEventListener.

 $('[href*="#"]').addEventListener('click', function(e) {
      $('html,body').stop().animate({
        scrollTop: $(this.hash).offset().top - $('.header').innerHeight()
      }, 1000);});
→ Ссылка
Автор решения: Вася

Переписал цикл

for (i = 0; i < accHD.length; i++) {
  accHD[i].addEventListener('click', toggleItem, false);
}

и функцию toggleItem и заработало

const accHD = document.querySelectorAll('.accordionItem__wrapper');

if (typeof(accHD) != 'undefined' && accHD != null && accHD.length !== 0) {
  accHD.forEach(el => {
    el.addEventListener('click', event => {
      event.preventDefault();
      const el_siblings = el.closest('.accordionWrapper').querySelectorAll('.accordionItem');
      el_siblings.forEach(s => {
        if (s.classList.contains('openItem')) {
          s.classList.remove('openItem');
          s.classList.add('closeItem');
        }
      });

      if (el.parentNode.classList.contains('closeItem')) {
        el.parentNode.classList.remove('closeItem');
      }
      el.parentNode.classList.add('openItem');

    });
  });
}

$('[href*="#"]').on('click', function(e) {
  $('html,body').stop().animate({
    scrollTop: $(this.hash).offset().top - $('.header').innerHeight()
  }, 1000);
});
nav,
ul {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}

ul {
  list-style: none;
}

li {
  margin-right: 20px;
}

hr {
  margin-top: 10px;
  margin-bottom: 10px;
}

.accordionItemHeading {
  cursor: pointer;
  padding: 10px 20px 8px 37px;
  border: 1px solid #404A9F;
  box-sizing: border-box;
  border-radius: 8px;
}

.accordionItemHeading:hover {
  border-color: #33CC66;
}

.accordionItemHeading h4 {
  font-style: normal;
  font-weight: bold;
  font-size: 16px;
  line-height: 32px;
  color: #3F3F3F;
  margin-bottom: 0;
}

.accordionItemHeading a {
  display: none;
  position: relative;
  font-style: normal;
  font-weight: normal;
  font-size: 16px;
  line-height: 32px;
  color: #33CC66;
  margin-right: 30px;
}

.accordionItemHeading a:before {
  position: absolute;
  bottom: 50%;
  transform: translateY(50%);
  left: 0;
}

.closeItem .accordionItemContent {
  height: 0px;
  transform: scaleY(0);
  display: block;
}

.openItem .accordionItemHeading {
  border-color: #33CC66;
}

.openItem .accordionItemHeading a {
  display: inline-block;
}

.openItem .accordionItemContent {
  font-size: 14px;
  line-height: 150%;
  color: #484848;
  padding: 21px 24px 29px 37px;
  width: 100%;
  margin: 0px 0px 10px 0px;
  display: block;
  transform: scaleY(1);
  transform-origin: top;
  transition: transform 0.4s ease;
  box-sizing: border-box;
  border: 1px solid #33CC66;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

@media screen and (max-width: 767px) {
  .openItem .accordionItemContent {
    padding: 15px;
  }
}

.accordionItemHeading__block {
  margin-bottom: 30px;
}

.accordionItemHeading__block span {
  display: block;
  font-style: normal;
  font-weight: bold;
  font-size: 14px;
  line-height: 170%;
  color: #9FA4CF;
  margin-bottom: 3px;
}

.accordionItemHeading__block p {
  font-style: normal;
  font-weight: normal;
  font-size: 16px;
  line-height: 170%;
  color: #3F3F3F;
}

.accordionItemHeading__block p a {
  color: #404A9F;
  text-decoration-line: underline;
}

.openItem .accordionItemHeading {
  margin: 0px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.accordionItemContent__bold p {
  font-weight: 700;
}

.accordionItemContent__red p {
  color: $red;
}

.accordionItem {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 15px;
}

.accordionItem:last-child {
  margin-bottom: 0;
}

.accordionItem__wrapper {
  position: relative;
}

.accordionItemContent p {
  margin-bottom: 15px;
  font-size: 16px;
  line-height: 21px;
}

.openItem .accordionItem__img {
  transform: rotate(90deg);
  transition: all .25s ease-in-out;
  background-color: #33CC66;
}

.openItem .accordionItemHeading {
  border-bottom: 0;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.col-lg-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.col-lg-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section>
  <header class="header">
    <nav>
      <ul>
        <li><a href="#block1">Link 1</a></li>
        <li><a href="#block2">Link 2</a></li>
        <li><a href="#block3">Link 3</a></li>
      </ul>
    </nav>
  </header>
  <main>
    <div id="block1">
      <h2>Block 1</h2>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
      in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
      sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
      dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore
      et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
      sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      <div class="accordionWrapper">
        <div class="accordionItem openItem">
          <div class="accordionItem__wrapper">
            <div class="accordionItemHeading">
              <div><a href="#block3" class="accordionItemHeading__arrange">Link 3</a>
              </div>
            </div>
          </div>
          <div class="accordionItemContent">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
            in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing
            elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
            esse cillum
          </div>
        </div>
      </div>
    </div>
    <hr />
    <div id="block2">
      <h2>Block 2</h2>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
      in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
      sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
      dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore
      et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
      sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
    </div>
    <hr />
    <div id="block3">
      <h2>Block 3</h2>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
      in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
      sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
      dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
    in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
    eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
    magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
    cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </main>
</section>

→ Ссылка