使用angular停止在overflow-x auto上自动滚动

时间:2013-12-20 06:45:02

标签: javascript jquery css angularjs

我有一个套接字事件,它使用$scope.items.unshift(item)到列表的顶部。

html正在使用<ol ng-repeat="item in items"><li>{{item.name}}</li></ol>

问题在于,无论何时项目进入,如果用户在列表中向下滚动

ol { overflow-y: auto; max-height: 100px; }

然后滚动位置会改变,如果他们正在读取一半的项目,它会跳出视图或在页面上向下跳一点。

我正在尝试动态地向列表中添加项目,但没有滚动条移动...这样即使项目流入列表顶部,当前滚动位置也是粘滞的。

1 个答案:

答案 0 :(得分:0)

我建议您在取消搭档时从scrollTop添加项目的高度。获取列表元素myList并执行以下操作:

var currentScrollTop = myList.scrollTop(),
itemHeight= 30;
$scope.items.unshift(item)
myList.scrollTop(currentScrollTop + itemHeight);

我没有测试这段代码,但它应该给你一个想法。