2016-06-10 59 views
0

位置頂部並不是每次都一致, 如果用戶在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計算位置?

+0

嘗試在$超時封裝你的代碼 - [鏈接](http://blog.brunoscopelliti.com/run-a-directive-after-the-dom-has-finished-rendering/) –

+0

嘗試沒有工作,我沒有試圖檢查一個元素。我試圖尋找整個頁面加載由於某種原因,它沒有工作 – user2936008

回答

0

使用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 
     } 
    }); 
}); 
+0

嘗試之前沒有工作 – user2936008