我正在实现一个jQuery插件(localscroll),以使页面平滑滚动到命名的锚元素。 localscroll支持一个名为“哈希”的选项,它的基本作用是将命名的锚哈希附加到URL中,使用户可以轻松使用浏览器后退/前进按钮添加书签和移动。



HTML

<ul id="navigation" class="main_menu">
    <li><a href="#panel_home">Home</a></li>
    <li><a href="#panel_story">Story</a></li>
    <li><a href="#panel_mantra">Mantra</a></li>
    <li><a href="#panel_showcase">Showcase</a></li>
    <li><a href="#panel_experience">Experience Us</a></li>
</ul>


Javascript (jquery)

$(document).ready(function () {
    $("#navigation").localScroll({
        offset: {left: 0, top: -56},
        hash: true,
        easing: 'easeInOutExpo'
     });
});


上面的代码运行良好,但是每当单击链接时,滚动就会以闪烁开始(可能是因为浏览器的默认行为是跳转到指定的锚点)。在Firefox中,这种闪烁的东西比Chrome或Safari更为明显,这是一个很大的禁止。如何使用地址栏反映当前命名锚点使过渡平滑?任何帮助深表感谢。谢谢!

最佳答案

我发现了为什么单击与localscroll映射的链接时页面会闪烁。我在localscroll.js文件之后包含了jquery.js文件,这导致了这种奇怪的行为。因此,我将在脚本中使用的所有缩小版本的jquery,localscroll,easing和其他javascript都包含在单个.js文件中,从而解决了该问题。

10-07 14:29