在文档加载时滚动ScorTo锚元素

时间:2011-02-01 02:17:46

标签: javascript jquery dom cross-browser anchor

有人在过去发布过这篇文章,所以我会重新发布它,因为我很想知道是否有任何自定义脚本具有此功能。我敢说,所以我不必自己编码:P

摘自this SO post: “我已经知道了jQuery插件ScrollTo,但到目前为止我还没有找到任何方法来实现以下内容:

用户访问我的网站(通过输入,而不是点击我页面上的链接)domain.com/bla.php#foo

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

到目前为止感谢!“

1 个答案:

答案 0 :(得分:1)

你可以解决这个问题。在其中添加一个脚本以获取当前位置。将scrolltop设置为页面顶部,然后在页面加载时添加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>
  ...

我希望在浏览器有机会捕捉锚点之前触发此操作。它可能会也可能不会起作用。随意自己充实。