2017-08-02 92 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回调处理程序中。然后任何滚动到底部将只会发生所有图像加载。