我正在使用 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。