0
我正在嘗試在angularJS中進行一個小聊天。我使用div來顯示我的消息,並且我希望我的div在頁面加載時向下滾動。我創建了一個指令來做到這一點。
我的HTML:
<div id="myChat" style="height: 500px; overflow-y: scroll;border: 1px solid #ccc;border-radius: 4px;" scroll-bottom>
<div ng-repeat='message in chatMessagesArray'><span style="color:green">aaa</span><span> bbb</span></div>
</div>
我的角度指令:
.directive('scrollBottom', ['$timeout' , function ($timeout) {
return {
link: function (scope, element) {
$timeout(function() {
console.log($(element).scrollTop())
$(element).scrollTop($(element)[0].scrollHeight)
})
}
}
}
在控制檯上,我看到的console.log的輸出(),這是0,所以我知道該指令被觸發,但第二行沒有完成...你知道什麼可能是錯的?在MAC OS X + Chrome/FF上測試
謝謝,這工作正常。但是有沒有一種方法可以告訴代碼在DOM和信息加載後立即執行,而不是在1秒內隨機放置一次? – Pechou
只是刪除毫秒部分,它會在需要進程ID完成後自動調用。我已更新我的代碼 –
我有完全相同的問題,當我刪除毫秒...我猜數組還沒有被填充,所以滾動不執行 – Pechou