首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery自动滚动div到底部

问JQuery自动滚动div到底部
EN

Stack Overflow用户
提问于 2020-02-09 09:58:04
回答 3查看 287关注 0票数 0

我有页面消息页面,它通过ajax自动获取消息,但是包含消息的div总是像正常一样滚动到顶部。我想要它像任何其他消息应用程序自动滚动到最后一条消息,这是在div的底部。主体不能滚动,因为它与客户端设备的高度相连,但内部的其他div是可滚动的,目标div是带有id消息的div。我有个插件

代码语言:javascript
复制
    <div class="chat-messages-body" id="chat-messages-body" style="display:flex; flex-direction: column-reverse;">
      <div data-simplebar="init" id="chat-messages-body-init">
        <div class="chat-messages-list" id="chat-messages-list">

<div id="messages">
<!-- loading chats -->
  <div id="" style="padding-top:10%;"> 
    <center class="text-primary rotate-infinite">
      <img src="/images/loading_chats.png" width="35px;"></img>
    </center>
    <p class="text-center" style="color:#ff003c;">Loading...</p>
  </div> 
<!-- .loading chats -->
</div>

        </div><!-- .chat-messages-list -->
      </div><!-- SimpleBar INIT -->
    </div><!-- .chat-messages-body -->

和我的jquery代码,它加载消息并滚动到buttom,但它不起作用

代码语言:javascript
复制
//jquery get messages, refresh every 5 seconds and scroll to messages bottom
  window.setInterval(function(){
    var id = $("#id").val(); //get transaction id
    $(document).ready(function(){
        $("#messages").load('/jsServerSide/messages.php', {id:id});
    });
    $('#messages').animate({
        scrollTop: $('#messages').get(0).scrollHeight
    }, 2000);
  }, 5000);

这是我目前的身体固定高度代码

代码语言:javascript
复制
//Dont scroll page, use fixed 2000px height
  $(document).ready(function() {
      $('#chat-scroll').animate({
          scrollTop: $('#chat-scroll').get(0).scrollHeight
      }, 2000);
  });
// .Dont scroll page, use fixed 2000px height

我使用这个插件创建自定义滚动条SimpleBar

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-09 11:21:24

使用load函数上的第三个参数,这是一个回调,每当AJAX完成时都会调用该回调。将动画函数放在回调中,以便在有新内容时才开始滚动。

代码语言:javascript
复制
var $messages = $('#messages');
window.setInterval(function(){
  var id = $("#id").val(); //get transaction id
  $messages.load('/jsServerSide/messages.php', {id:id}, function() {
    $messages.animate({
      scrollTop: $messages.prop('scrollHeight')
    }, 2000);
  });
}, 5000);
票数 2
EN

Stack Overflow用户

发布于 2020-02-09 10:19:18

代码语言:javascript
复制
$('#messages').animate({
    scrollTop: $('#messages').prop('scrollHeight')
}, 2000);

这对我有用。去试试吧。

票数 1
EN

Stack Overflow用户

发布于 2020-02-09 11:25:57

这应该对你有用。这是一个演示。

$('#messages').animate({ scrollTop:$('#messages').get(0).scrollHeight },2000年);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60135372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档