我想找到一种方法,在点击链接后在新页面上使用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。
答案 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>
在服务页面上
window.onload = function () {
if (window.location.pathname === '/services') {
window.scrollTo(0, somewhere)
}
}
&#13;
更新:误解了问题,更好的解决方案:
在主页上
<a href="/services#section-id">Other Services</a>
在服务页面上
<section id="section-id">Other Services</section>
浏览器将为您完成工作。