我有一个与页面上的 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 参数,因此会忽略行为和内联。谢谢!