【bug】table重新加载数据,页面滚动条下沉到底部,记录scrollTop后将其恢复scrollTop出现闪烁

1.table数据请求前记录scrollTop

$scope.scrollPos = document.documentElement.scrollTop;

2.html中添加指令repeat-finishi

<tr ng-repeat="item in lists" class="repeat-finish">

3.写入指令

AppDirective.directive('repeatFinish', function () {
    return {
        restrict: "C",
        link: function (scope, element, attr) {
            if(scope.$last === true){
                $(document).scrollTop(scope.scrollPos);
            }
        }
    }
});

当指令检测到DOM已经渲染好(scope.$last === true表示repeat渲染完成)立即恢复之前记录的scrollTop,这样从table加载好到恢复scrollTop就接近无延迟,闪烁的情况消失了。

猜你喜欢

转载自www.cnblogs.com/bagexiaowenti/p/10570265.html