为什么浏览器不能滚动到锚点?
网址: http://localhost:8080/index.html#myAnchor3
this.anchor1.setName("myAnchor1");
this.add(this.anchor1);
this.anchor2.setName("myAnchor2");
this.add(this.anchor2);
this.anchor3.setName("myAnchor3");
this.add(this.anchor3);
是否因为锚点是在页面加载完成后创建的,所以当浏览器尝试滚动到它时,浏览器看不到锚点?
答案 0 :(得分:1)
试试这个:
this.anchor.setName("myAnchor");
this.add(this.anchor);
location.hash = '#myAnchor';
是的,你是对的,你的锚是在页面加载后创建/插入的,所以...... [/ p>
答案 1 :(得分:1)
您可以尝试使用Element.scrollIntoView(),它不仅会滚动窗口,而且还会保存包含该元素的DOM层次结构中的任何可滚动容器。
答案 2 :(得分:1)
必须覆盖onLoad方法,并在那里调用scrollIntoView,否则它会尝试滚动到尚未添加到DOM的对象。
public class Foo extends Widget
{
Foo(){
}
@Override
protected void onLoad(){
super.onLoad();
getElement().scrollIntoView();
}
}