Postion().top 不是一致的,因为角度 DOM 仍在加载



位置顶部不是每次都一致,如果用户在 dom 仍在加载位置时向下滚动,位置会有所不同。

 angular.module('users').directive('appplyProperty', ['$window', '$timeout',
        function ($window, $timeout) {
            var $win = angular.element($window);
            return {
                restrict: 'A',
                link: function (scope, element, attrs) {
                  var = offsetTop = element.offset().top;
                 $win.on('scroll', function (e) {
                    var checkTheTop = $window.scrollY - offsetTop;
                      if (checkTheTop > 0) {
                         // apply css property top = checkTheTop ;
                        } else {
                        //do something
                 }
                });
             });
          }
}]);

如何确保仅在加载 DOM 后计算位置或条件现在 dom 计算位置中没有发生任何事情?

使用ready方法确保你的角度 DOM 已准备就绪。

angular.element(document).ready(function () {
    $win.on('scroll', function (e) {
        var checkTheTop = $window.scrollY - offsetTop;
        if (checkTheTop > 0) {
            // apply css property top = checkTheTop ;
        } else {
            //do something
        }
    });
});

相关内容

最新更新