Javascript 当新消息到达(不是您发送的)时,如何使聊天室中的滚动条向下滚动

Javascript 当新消息到达(不是您发送的)时,如何使聊天室中的滚动条向下滚动,javascript,jquery,html,ajax,scrollbar,Javascript,Jquery,Html,Ajax,Scrollbar,实际页面参考:www.friendsinclass.co.nf 我正在建立一个简单的聊天,我有一个问题。加载页面时,聊天滚动条会自动向下滚动,如底部的updatescroll()函数所示。目前,updatescroll在$(document).ready内的setInterval中每秒调用一次,以便在写入新消息时向下滚动。如您所见,submitChat()中还调用了autoscroll(),这意味着每次我提交邮件时都会调用autoscroll。问题是,如果不是我的用户提交了一条消息,autosc

实际页面参考:www.friendsinclass.co.nf

我正在建立一个简单的聊天,我有一个问题。加载页面时,聊天滚动条会自动向下滚动,如底部的updatescroll()函数所示。目前,updatescroll在$(document).ready内的setInterval中每秒调用一次,以便在写入新消息时向下滚动。如您所见,submitChat()中还调用了autoscroll(),这意味着每次我提交邮件时都会调用autoscroll。问题是,如果不是我的用户提交了一条消息,autoscroll将不会被调用,因此我每1秒设置一次autoscroll来解决这个问题

问题:如果用户想向上滚动查看旧邮件,autoscroll将每隔1秒再次向下滚动,使其搜索无效。如何以最简单的方式解决这个问题?我尝试了很多方法,但都不管用,而且我对Jquery不是很在行,所以请尽量简单

多谢各位!下面是JS

function submitChat() {
    form1.uname.readOnly = true;
    form1.uname.style.border = 'none';
    var uname = form1.uname.value;
    var msg = form1.msg.value;
    var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState==4&&xmlhttp.status==200) {
            document.getElementById('chatlogs').innerHTML = xmlhttp.responseText;
    setTimeout(function(){ updateScroll(); }, 100);
            }

    }
    xmlhttp.open('GET','insert.php?uname='+uname+'&msg='+msg,true);
    xmlhttp.send();
    setTimeout(function(){ updateScroll(); }, 100);
}



    $(document).ready(
            function(e) {
            $.ajaxSetup({cache:false});
 setInterval(function({$('#chatlogs').load('logs.php');updateScroll();}, 1000);
            setTimeout(function(){ updateScroll(); }, 1200);

    });

</script>

   <script language="javascript">
    function toggleState(item){
       if(item.className == "on") {
          item.className="off";
       } 
       else {
          item.className="on";
       }
    }
 </script>

<script>

function updateScroll() {               

    var element = document.getElementById("chatlogs");
    var elementHeight = element.scrollHeight;
    element.scrollTop = elementHeight;
}
window.onload = updateScroll;
</script>
HTML切换:

    <input type="button" id="btn" value="button" 
    class="off" onclick="toggleState(this)" />


我不确定这个问题是否与您之前提出的问题不同:解决方案将类似,检测用户是否在AJAX响应中滚动聊天,如果没有,则滚动到底部。是的,但是您能否实现我代码中上一个问题的代码?因为我试过这么做,但有点不对劲。
    <input type="button" id="btn" value="button" 
    class="off" onclick="toggleState(this)" />