2017-08-02 88 views
0

我正在使用聊天應用程序,並且問題似乎是滾動底部的指令,在ng-repeat中的最後一項在消息中有圖像時無法正常工作。 所以它只是不會一直滾動底部。 我認爲原因是該指令在圖像完全加載之前滾動。Scroll Bottom Angularjs指令

    // Scroll to bottom directive 
        .directive('schrollBottom', function ($timeout) { 
         return { 
         scope: { 
          schrollBottom: "=" 
         }, 
         link: function (scope, element) { 
          scope.$watchCollection('schrollBottom', function (newValue) { 
          if (newValue) 
          { 
          $timeout(function() { 

          $(element[0]).scrollTop($(element)[0].scrollHeight); 
         }, 0, false); 



          } 
          }); 
         } 
         } 
        }) 
+0

檢查[這裏](https://stackoverflow.com/questions/12354865/image-onload-event-and-browser-cache)看看如何等待圖像加載之前做一些事情。您可以向所有圖像添加一個類,並在滾動之前等待該類的所有圖像加載。 – Lansana

+0

@Lansana,謝謝你有辦法在一個指令中有東西,一個是看收集和第二個條件,如果圖像加載? – Beny

+0

我會保持你有什麼邏輯,並把它放在'img.onload'回調處理程序中。然後任何滾動到底部將只會發生一次所有圖像加載。 – Lansana

回答

1

檢查here看看如何在做某件事之前等待圖像加載。您可以向所有圖像添加一個類,並在滾動之前等待該類的所有圖像加載。

我會保持你有什麼邏輯,並把它放在img.onload回調處理程序中。然後任何滾動到底部將只會發生所有圖像加載。