我有一个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那样使用一个真正的url链接,但实际上我不能这样做,因为我不能加载一个新页面,或者我没有其他信息。
你有办法处理这件事吗?
PS:我把样本放在这里:https://www.w3schools.com/code/tryit.asp?filename=FHHEHPNB4O1V
有两个箱子,第一个按钮工作正常。但第二个不起作用。
谢谢你的帮忙!
发布于 2017-07-12 13:11:16
您是否考虑过使用html锚的默认功能?
所以如果你把第二个按钮换成
<a href="#generalAnchor">Click me</a>你的代码应该能用。
您可以更改设计,如果您需要或包装您的按钮与链接。
https://stackoverflow.com/questions/45058478
复制相似问题