[英]Chat box scroll to bottom
我在這里找到了關於Stackoverflow的解決方案,但是我無法正常工作
...
<div class="panel-body">
<ul id="mtchat" class="chat">
</ul>
</div>
...
在這里,js添加了新的<li>
但是滾動不起作用
worker();
function worker() {
// ajax request deleted
updateChat();
setTimeout(worker, 1000);
};
function updateChat() {
$('#mtchat').append('<li class="right clearfix">Hallo</li>');
var height = $('#mtchat')[0].scrollHeight;
var dheight = $('#mtchat').height();
var scrolling = height - dheight;
$('#mtchat').scrollTop(scrolling);
console.log('height:'+height);
console.log('dheight:'+dheight);
}
在控制台中,即使溢出開始,我也可以看到scrollHeight
和Height
始終相同。
我做了一個JsBin
檢查這個jsfiddle
在這里, worker()
方法僅被調用一次,而這只是為我們設置了東西:
button
單擊分配處理程序 代碼:
function worker() {
$('#mtchat').append('<li class="right clearfix">Hallo</li>');
// ajax request deleted
setTimeout(updateChat(), 1000);
$("#btn-chat").on("click", function(){
var text = $('#btn-input');
$('#mtchat').append('<li class="right clearfix">'+ text.val() +'</li>');
text.val('');
});
};
function updateChat() {
var height = document.getElementById('mtchat').scrollHeight; - $('#mtchat').height();
$('#mtchat').scrollTop(height);
}
您的JS Bin頭部不包含jquery庫。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script>
將以上內容包含在head
標簽中
另外,以下行應固定為:
var height = document.getElementById('mtchat').scrollHeight; - $('#mtchat').height();
至
var height = $('#mtchat')[0].scrollHeight - $('#mtchat').height();
$('#mtchat')[0].scrollHeight
是編寫document.getElementById('mtchat').scrollHeight
jquery方法
由於您在其他任何地方都使用jquery。
我現在想通了。 .panel-body
旨在overflow
,但我檢查了scrollHeight
的<ul>
在div.panel-body
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.