当我点击“转到第二部分”时,我希望它转到锚点,然后垂直滚动一个给定的量(这里是50px)的. So,发生的情况是,它将锚点放在页面顶部,但它不会执行额外的调整滚动。为了看到这一点,你必须用大量的文本填充这两个段落块。
<html>
<head>
<script>
function scrollxy(dx,dy) {
window.scrollBy(dx,dy);
}
</script>
</head>
<body>
<p><a href="#anchor2" onClick="scrollxy(0,-50);">Go to Section 2</a></p>
<h2>Section 1</h2>
<p>Lots of text ...</p>
<a id="anchor2"></a>
<h2>Section 2</h2>
<p>Lots of text ...</p>
</body>
</html>发布于 2015-02-25 01:10:06
问题是您的onClick函数在锚点向下滚动之前被调用。你必须延迟脚本的执行,才能让它正常工作:
function scrollxy(dx,dy) {
setTimeout(function() {
window.scrollBy(dx,dy);
}, 10);
}和
<p><a href="#anchor2" onClick="scrollxy(0,50);">Go to Section 2</a></p>这是一个FIDDLE
https://stackoverflow.com/questions/28701644
复制相似问题