Показать сообщение отдельно
  #7 (permalink)  
Старый 19.07.2018, 08:57
Аватар для madeas
Профессор
Отправить личное сообщение для madeas Посмотреть профиль Найти все сообщения от madeas
 
Регистрация: 13.04.2018
Сообщений: 232

Может просто другой скрипт поставить? Если сайт без jquery, то я использую скрипт ниже. Его достаточно. Переходит с любой страницы к любому якорю. На всех страницах скролл плавный. Кроме перехода к якорю с другой страницы. Там просто бросает к нему.
var linkNav = document.querySelectorAll('[href^="#"]'),
    V = 1;
  for (var i = 0; i < linkNav.length; i++) {
    linkNav[i].addEventListener('click', function(e) {
      e.preventDefault();
      var w = window.pageYOffset,
        hash = this.href.replace(/[^#]*(.*)/, '$1');
      t = document.querySelector(hash).getBoundingClientRect().top,
        start = null;
      requestAnimationFrame(step);

      function step(time) {
        if (start === null) start = time;
        var progress = time - start,
          r = (t < 0 ? Math.max(w - progress / V, w + t) : Math.min(w + progress / V, w + t));
        window.scrollTo(0, r);
        if (r != w + t) {
          requestAnimationFrame(step)
        } else {
          location.hash = hash
        }
      }
    }, false);
  }
Ответить с цитированием