我正在尝试设置一个可滚动的 div,当添加新内容时它会自动滚动到底部。我试过这些:
this.ele.scrollTop = this.ele.offsetHeight;
this.ele.scrollTop = this.ele.scrollHeight;
但是 div 仍然幸福地固定在顶部。我究竟做错了什么?
您遇到的可能是这个错误https://code.google.com/p/dart/issues/detail?id=18062 。
与此同时,解决方法是通过 dart:js 设置(使用 #9 中的 repro):
import 'dart:html';
import 'dart:js';
void main() {
var ta = new TextAreaElement();
ta.wrap = "off";
document.body.children.add(ta);
ta.text = "abcde 01234 (1) abcde 01234 (2) abcde 01234 (3) abcde 01234 (4) "
"abcde 01234 (5) abcde 01234 (6) abcde 01234 (7) abcde 01234 (8) ";
new JsObject.fromBrowserObject(ta)['scrollLeft'] = '200';
}
如果需要滚动到底部(而不是向左滚动),那么 Günter 的示例可能应该包括获取当前的 scrollHeight 并相应地设置 scrollTop:
JSObject jsObject = new JsObject.fromBrowserObject(scrollableElement);
int scrollHeight = jsObject['scrollHeight'];
jsObject['scrollTop'] = '${scrollHeight}';