【发布时间】:2010-02-22 07:41:46
【问题描述】:
我正在实现一个 jquery 插件 (localscroll) 以平滑滚动到带有页面的命名锚元素。 localscroll 支持一个名为“hash”的选项,它的基本作用是将命名的锚点哈希附加到 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 更明显,并且是一个很大的 NO-NO。如何使用反映当前命名锚的地址栏使过渡平滑?任何帮助深表感谢。谢谢!
【问题讨论】:
-
From blog:: Hash 选项在滚动溢出元素时不太酷,主要推荐在滚动窗口时使用。所以页面不应该跳转,因为
hash(它是在动画末尾添加的) -
@Juraj 我已阅读文档。有没有其他方法(使用 Javascirpt)来散列?
标签: javascript jquery jquery-plugins