用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();
}
}
});