1

我正在尝试设置一个可滚动的 div,当添加新内容时它会自动滚动到底部。我试过这些:

this.ele.scrollTop = this.ele.offsetHeight;

this.ele.scrollTop = this.ele.scrollHeight;

但是 div 仍然幸福地固定在顶部。我究竟做错了什么?

4

2 回答 2

2

您遇到的可能是这个错误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';
}
于 2014-04-24T17:23:13.367 回答
1

如果需要滚动到底部(而不是向左滚动),那么 Günter 的示例可能应该包括获取当前的 scrollHeight 并相应地设置 scrollTop:

    JSObject jsObject = new JsObject.fromBrowserObject(scrollableElement);
    int scrollHeight = jsObject['scrollHeight'];
    jsObject['scrollTop'] = '${scrollHeight}';
于 2014-11-14T02:42:12.617 回答