在dart中将元素滚动到底部

时间:2014-04-24 16:49:06

标签: dart dart-html

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

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

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

但是div仍然在顶部保持着幸福。我做错了什么?

2 个答案:

答案 0 :(得分: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';
}

答案 1 :(得分:1)

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

    JSObject jsObject = new JsObject.fromBrowserObject(scrollableElement);
    int scrollHeight = jsObject['scrollHeight'];
    jsObject['scrollTop'] = '${scrollHeight}';