2011-02-01 113 views
0

有人在过去发布了这个,所以我会重新发布它考虑我很想看看这个功能是否有任何自定义脚本。我敢说,所以我不必自己编写代码:P滚动到文档加载时的锚元素

摘自this SO post: “我已经知道jQuery插件ScrollTo,但是我没有找到任何方法来实现以下功能:

的用户获取到我的网站(由打字,无法通过单击我的页面上的链接)domain.com/bla.php#foo

和“#foo”存在锚。现在我想的是,用户的浏览器不会自动滚动到“#foo”,而是我想平滑地滚动,以便元素'#foo'在视图的中间位置,而不在用户视图的绝对顶部位置。

非常感谢!“

+0

猜测唯一真正的解决方法是将某些东西添加到滚动机制,而不是尝试单独处理锚元素。在页面完全加载之前,页面不会捕捉到锚点。足够的时间将滚动机制绑定到脚本。 – DoctorLouie 2011-02-01 03:24:22

回答

1

你可以解决这个问题。在右侧添加一个脚本以获取当前位置。设置页面顶部的页面,然后添加一个jQuery.ready(scrollTo)块加载页面时。

一个伪代码实现如下。

<head> 
    <script src="jquery.js"> 
    <script> 
    var loc = window.location; 
    var anchor = getAnchor(loc); 
    if (anchor !== undefined) { 
     removeAnchor(loc, anchor); 
     scrollTo(0); 
     $.ready(function() { 
     $.scollTo(anchor); 
     }); 
    } 
    </script> 
    ... 

我希望这会在浏览器有机会捕捉到锚点之前触发。它可能会或可能不会工作。随意充实自己。

+0

既然你是唯一一个亲近的人,我会给你竖起大拇指:P – DoctorLouie 2011-02-08 19:27:23