我写的聊天有问题。我编写了以下代码,以便在用户未触摸聊天或滚动到底部时将其滚动到底部。它在Chrome上运行良好,但在Safari上,添加新条目时,它将始终将属性scrollTop设置为3。即使没有输入,它也会在一段时间后随机跳至顶部。任何建议将不胜感激!谢谢!
function writeChat(elem) {
const chatty = document.getElementById('chat');
const nDiv = newLine();
const chInfo = window.getComputedStyle(chatty, null);
nDiv.appendChild(elem);
const total = parseInt(chInfo.getPropertyValue('height')) + chatty.scrollTop + 18;
if(total >= chatty.scrollHeight || hasScrolled == false) {
chatty.appendChild(nDiv);
setTimeout(function(){ chatty.scrollTop = 1000000; }, 0.15);
} else {
chatty.appendChild(nDiv);
}};
function newLine(cls) {
const nDiv = document.createElement('div');
if(cls) {
nDiv.className = cls;
} else {
nDiv.className = "chatEntry";
}
return nDiv; };
聊天div的CSS:
position: relative;
overflow-y: auto;
word-wrap: break-word;
height: 89%;
width: 98%;
font-size: 2vw;
padding: 1% 2%;
z-index: 1;
-webkit-overflow-scrolling: touch;
在Safari上的外观说明:
On Safari
关于在Chrome上的外观的gif信息:
On Chrome