我看过很多关于使用 ScrollTo.js 插件和 Bootstrap 时页面闪烁问题的帖子。特别是在 iOS 中。我尝试了很多建议都无济于事。一旦用户滚动到导航栏,我还使用 Bootstrap 的 Affix 来附加导航栏。我不知道是 ScollTo 还是 Affix 导致了闪烁,但 .navbar 似乎在 iOS 设备上跳跃或弹跳。有什么想法可以解决这个问题吗?
<div class="navbar navbar-static-top" data-spy="affix" data-offset-top="66">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#top"><img src="images/logo@2x.png" width="209px" height="54px" class="logo"></a>
</div>
<div class="navbar-collapse collapse navbar-right">
<ul class="nav navbar-nav">
<li><a href="#about">About</a></li>
<li><a href="#news">News</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#gallery">Gallery</a></li>
<li><a href="#blog">Blog</a></li>
</ul>
</div>
</div>
CSS
.navbar.affix {
position: fixed;
top: 0;
width: 100%;
}
JS
$(function() {
$('.navbar a').on('touchstart click', function(e) {
e.preventDefault();
target = this.hash;
$.scrollTo(target, 1000, {'axis': 'y'});
});