【问题标题】:ScrollTo Anchor Element at Document Loadtime在文档加载时滚动到锚元素
【发布时间】:2011-06-18 23:56:51
【问题描述】:

以前有人发布过这个,所以我会重新发布它,因为我很想看看是否有任何具有此功能的自定义脚本。我敢说,所以我不必自己编码:P

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

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

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

到目前为止谢谢!”

【问题讨论】:

  • 猜猜唯一真正的解决方法是在滚动机制上附加一些东西,而不是尝试自己处理锚元素。因为页面在完全加载之前不会捕捉到锚点。有足够的时间将滚动机制绑定到脚本。

标签: javascript jquery dom cross-browser anchor


【解决方案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>
  ...

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

【讨论】:

  • 既然你是唯一一个更接近的人,我会给你竖起大拇指:P
猜你喜欢
  • 2013-07-30
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
  • 2023-03-07
相关资源
最近更新 更多