1

我正在使用 AgularJS 创建一个聊天框,并且我需要包含消息线程的可滚动 div 默认滚动到底部。div 具有以下这些属性

<div id="test" style="margin-top: 50px; margin-bottom: 50px; overflow-y: scroll; height: 100%;">

当加载列表中的最后一个元素时,我正在使用此指令将 scrollTop 设置为 scrollHeight

angular.module('myApp.directives', [])
.directive('lastElement', function(){
  return {
    priority: 1,
    restrict: 'A',
    link: function(scope, $el, attrs, ctrls){
      var parent = $el[0].parentNode.parentNode;

      if(scope.$last){
        parent.scrollTop = parent.scrollHeight;
      }
    }
  }
});

不幸的是,这不起作用。scrollTop 值保持为 0。但是,当我改为给 div 一个固定高度而不是一个百分比时,它会滚动到所需的位置。

<div id="test" style="margin-top: 50px; margin-bottom: 50px; overflow-y: scroll; height: 100px;">

如何在将 div 的高度设置为百分比时设置 scrollTop。

4

0 回答 0