Next -25- 中文目录单击不跳转问题解决方案

2022-08-04 14:40:03 浏览数 (1)

我配置的hexo环境下,next主题中,生成文章的中文目录点击后不会自动跳转到相应位置,本文记录解决方案。

解决方案

  • 在next github 上已经提出了该问题并给出了解决方案
  • 主要修改了如下函数:
代码语言:javascript复制
registerSidebarTOC: function() {
  const navItems = document.querySelectorAll('.post-toc li');
  const sections = [...navItems].map(element => {
    var link = element.querySelector('a.nav-link');
 var target = document.getElementById(decodeURI(link.getAttribute('href')).replace('#', ''));
    // TOC item animation navigate.
    link.addEventListener('click', event => {
      event.preventDefault();
      //var target = document.getElementById(event.currentTarget.getAttribute('href').replace('#', ''));
      var offset = target.getBoundingClientRect().top   window.scrollY;
      window.anime({
        targets  : document.scrollingElement,
        duration : 500,
        easing   : 'linear',
        scrollTop: offset   10
      });
    });
    //return document.getElementById(link.getAttribute('href').replace('#', ''));
 return target;
  });

参考资料

  • https://github.com/theme-next/hexo-theme-next/pull/1540/files

0 人点赞