jQuery: anchor 加载页面然后滚动到 div

标签 jquery onload scrollto

我有一个单页网站,当单击导航链接时,该网站会滚动到正确的部分 - 请参阅 http://www.cleanupbritain.org举个例子。

我现在正在扩展网站并添加一个位于子目录中的博客,我正在尝试设置博客导航以加载 www.cleanupbritain.org,然后滚动到正确的部分。这可能吗?我对 jQuery 相当陌生,因此我们将不胜感激。

这是导航链接:

<a href="http://www.cleanupbritain.org" onClick="goToByScroll('news')">News</a>

这是我编写的脚本:

<!-- ScrollTo for navigation scrolling -->
<script type="text/javascript">
jQuery(window).load(function() {
    function goToByScroll(id){
            jQuery('html,body').animate({scrollTop: $("#"+id).offset().top - 236},'slow');
    }
    function goToTop(){
            jQuery('html,body').animate({scrollTop: 0},'slow');
        }
});
</script>

我认为导航链接不正确,但我不确定需要更改哪些内容才能确保脚本在正确的时间执行?

非常感谢您的帮助,

刘易斯。

最佳答案

导航链接应为 <a href="http://www.cleanupbritain.org/#news">News</a>

现在,如果新闻 block 有 id="news" ,浏览器会自动滚动到它——这就是 anchor 的用途。如果您想要动画,那么:

<script type="text/javascript">
jQuery(window).load(function() {
    function goToByScroll(id){
       jQuery('html,body').animate({scrollTop: $("#"+id).offset().top - 236},'slow');
    }

    if(window.location.hash != '') {
        goToByScroll(window.location.hash.substr(1));        
});
</script>

也许您必须更改新闻的 block ID 以防止自动 anchor 行为,但您应该进行测试。

关于jQuery: anchor 加载页面然后滚动到 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7370666/

相关文章:

javascript - 有什么方法可以查看代码的哪一部分使网页速度变慢?

javascript - CSS 永久显示框

jQuery 太多递归

css - 如何仅在页面加载时转换一次图像?

jquery - $.scrollTo() 函数水平?

jquery - 切换 SHOUTcast 音频流 HTML5 音频播放器和 JQuery

javascript - 将值从 Servlet 传递到 JSP 中的 onload JavaScript 函数

javascript - WebOS onComplete 事件或模拟

javascript - 滚动到视口(viewport)的中心

jquery - 重写scrollTo jQuery 插件?