检查用户是否正在滚动,如果没有,则将滚动位置设置为底部

时间:2016-12-05 21:19:19

标签: javascript jquery scroll scrollbar

目前我正在聊天网站上工作。聊天框每200毫秒更新一次。加载新消息时,滚动条需要位于底部。我做到了问题是,当用户试图滚动到顶部位置时,滚动条每200毫秒落到底部(因为我设置为每200毫秒加载新消息并将滚动条重新定位到底部。)。所以这就是问题所在。现在我想检查用户是滚动还是已滚动。如果用户在计数开始时已经滚动或滚动,则滚动条将保持原样。如果用户根本没有滚动,也不是他现在滚动,那么每次新消息到达时滚动条都会到达底部位置...

这是我的代码。

   <div class="scrollbar" id="style-2" id="scrollBar">
       <div id="conversation">
       </div>                 
    </div>

<script>
 function loadConversation(){
    $.get("get-conversation.php?to_hash=00000", function(data, status){
    document.getElementById("conversation").innerHTML = data;

    ///Scrolling to bottom
    var container_height = $( "#contain" ).height();
    $( "div.scrollbar" ).scrollTop( container_height+1000000000000 );


});

setTimeout(loadConversation,200);       
}
loadConversation();`

请帮帮我。这对我来说非常重要......我非常感激。

1 个答案:

答案 0 :(得分:0)

这有点粗糙。它使计时器继续运行但仅在用户滚动时停止滚动到底部,并在用户停止滚动时继续。

filter