scrollTo javascript问题

时间:2017-07-12 13:04:37

标签: javascript html scroll anchor

我有一个js函数可以滚动到div。 这是函数,它工作正常,但我稍后会解释这有什么问题。

        scrollAnchor= function(){
        var element = document.getElementById('generalAnchor');
        var position = element.getBoundingClientRect();
        var x = position.left;
        var y = position.top;
        window.scrollTo(x,y);
    }

然后是一个html(没关系,我们只需要div generalAnchor)

<button onclick="scrollAnchor()">Click me</button>
<div id="generalAnchor">Test</div>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>

这是非常长的页面的示例,因此滚动工作正常。 但事情就是这样,如果我删除所有那些br,那么滚动不起作用,因为页面不够长。

我可以像myPage#generalAnchor一样使用真正的网址,但实际上我不能这样做,因为我无法加载新页面或者我没有其他信息。

你有什么想法可以解决这个问题吗?

PS:我把样本放在这里:https://www.w3schools.com/code/tryit.asp?filename=FHHEHPNB4O1V

有两种情况,第一个按钮工作正常。但第二个不起作用。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您是否已考虑过使用html锚点的默认功能?

因此,如果用

替换第二个按钮
<a href="#generalAnchor">Click me</a>

您的代码应该有效。

如果需要,您可以更改设计,或使用链接包裹您的按钮。