在新打开的页面上使用ScrollTo()

时间:2015-12-11 09:52:09

标签: javascript scroll

我想找到一种方法,在点击链接后在新页面上使用scrollTo()功能。不幸的是,使用window.onload在我的情况下不起作用,因为我只想在从特定链接打开页面时滚动。

我正在尝试将主页链接并滚动到服务页面的“其他”部分:

HTML:

<a onclick="otherServices">Other Services</a>

的JavaScript:

function otherServices() {
    window.location = "/services";
    win = window.location;
    setTimeout(win.scrollTo(0,document.body.scrollHeight), 3000);
}

如果可能的话,我最好避免使用jQuery。

2 个答案:

答案 0 :(得分:2)

来自主页上的特定链接,您可以使用hash

主页链接

<a href="/services#scroll">Other Services</a>

服务js

window.onload = function () {
  if (window.location.hash == '#scroll') {
    window.scrollTo(0,document.body.scrollHeight);
  }
}

或者你可以在没有JS的情况下做到这一点,但是在你想要滚动的元素的Id的链接中设置哈希值。

答案 1 :(得分:1)

这样的事情可行。在加载时触发并查看它是否在服务页面上,然后在某处滚动&#34;&#34; (填写空白!&#34;某处&#34;是你&#34;其他&#34;部分的位置。

在主页上 <a href="/services">Other Services</a>

在服务页面上

&#13;
&#13;
window.onload = function () {
  if (window.location.pathname === '/services') {
    window.scrollTo(0, somewhere)
  }
}
&#13;
&#13;
&#13;

更新:误解了问题,更好的解决方案:

在主页上 <a href="/services#section-id">Other Services</a>

在服务页面上 <section id="section-id">Other Services</section>

浏览器将为您完成工作。