簡體   English   中英

如何自動向下滾動聊天框 (div)?

[英]How do I scroll down a chatbox (div) automatically?

我一直在開發一個聊天應用程序,現在我需要在出現消息時自動滾動。 我嘗試了不同的東西,但不幸的是它們不起作用。 所以這是我的 main.js 代碼:

var lastTimeID = 0;

$(document).ready(function() {
  $('#btnSend').click( function() {

    sendChatText();
    $('#chatInput').val("");
  });
  startChat();
});

function startChat(){
  setInterval( function() { getChatText(); }, 2000);

}

function getChatText() {
  $.ajax({
    type: "GET",
    url: "/refresh.php?lastTimeID=" + lastTimeID
  }).done( function( data )
  {
    var jsonData = JSON.parse(data);
    var jsonLength = jsonData.results.length;
    var html = "";
    var message = $('#view_ajax');
    for (var i = 0; i < jsonLength; i++) {
      var result = jsonData.results[i];
      html += '<div>(' + result.chattime + ') <b>' + result.usrname +'</b>: ' + result.chattext + '</div>';
      lastTimeID = result.id;

    }
    $('#view_ajax').append(html);
    message.html(data);
      message.scrollTop(message[0].scrollHeight);

  });
}

function sendChatText(){
  var chatInput = $('#chatInput').val();
  if(chatInput != ""){
    $.ajax({
      type: "GET",
      url: "/submit.php?chattext=" + encodeURIComponent( chatInput )
    });
  }
}

我用過

var message = $('#view_ajax');
message.html(data);
message.scrollTop(message[0].scrollHeight);

我真的不知道 jQuery 是如何工作的。 在此之前我已經嘗試了幾件事,但它也不起作用。

你有什么建議嗎? 有什么建議嗎? 你需要更多信息嗎? 隨意問!

為每條消息指定一個 ID,如下所示:

<div id="msg-1234">

然后你可以使用這個 jQuery 滾動到這個元素:

$('html, body').animate({ scrollTop: $('#msg-1234').offset().top }, 'slow');

或者,在聊天底部放置一個 div:

<div id="chat-end"></div>

並滾動到此 ID。

JSFiddle 演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM