1

我有一个与页面上的 div ID 相关的项目列表。这些项目用作导航页面的锚链接。当用户滚动到页面上的每个部分时,它们也会突出显示。但是,在移动设备上,我还希望列表项可以水平滚动,并在用户向下移动页面时滚动到视图中(请参阅屏幕截图以获得视觉效果)。我想我可以很容易地为此使用 ScrollIntoView,但是 Safari 移动版不能很好地使用它,它会阻塞页面上的触摸滚动。

这是我目前正在使用的。它在 Chrome 上运行良好。

$(window).scroll(function(){
    $('.profile-content > section').each(function() {
      var id = $(this).attr('id');
      $('#profileNav a').removeClass('active');
      $('#profileNav a[href=\\#'+ id +']').addClass('active');

      if( $(window).width() < 768 ) {
        $('#profileNav a[href=\\#'+ id +']')[0].scrollIntoView({
            behavior: "smooth",
            inline: "center"
        });
      }
    });
  });

关于我可以做些什么来使它对 Safari 友好有什么建议吗?目前它会破坏触摸滚动(它的行为非常笨拙且不流畅)并且 Safari 会忽略 ScrollIntoView 参数,因此会忽略行为和内联。谢谢!

在此处输入图像描述

4

0 回答 0