用HTML寫聊天頁面或寫物聯網模塊顯示收發數據時,想把最新的數據始終能顯示出來,而不是超出窗口後只有舊的數據和一個下拉框手動滑動,今天要說的是怎麼才能讓窗口始終顯示最新接收的數據,即下拉框始終在最下方。
方法是:
在接收數據後展示到頁面的方法中加上
$("#xxx")[0].scrollTop = $("#xxx")[0].scrollHeight
就可以了。
要是嫌不夠高大上,那就監聽窗口內容的高度,超出窗口範圍,就把下拉框拉到最低,如下
$("#xxx").bind("DOMNodeInserted", function () {
var height = document.getElementById('xxx').offsetHeight;
var newHeight = document.getElementById('xxx').scrollHeight;
if (newHeight > height) {
// 始終保持滾動條在最下方
$("#xxx")[0].scrollTop = $("#xxx")[0].scrollHeight
// 當數據超出1000像素則刪除第一條數據(根據自己需要,可寫可不寫)
if ((newHeight - height) >= 1000) {
$("#element p:first-child").remove();
}
}
});