大江
大江
  • 发布:2015-08-08 10:41
  • 更新:2016-10-13 00:02
  • 阅读:3710

关于im-chat.html存在的聊天窗口高度计算的一个问题

分类:MUI

1、我在用im-chat.html开发一个聊天室应用的时候遇到一个问题,如下:
我的页面首次打开需要加载30条聊天数据(包含图片、文字两种类型),由于我需要以前的聊天数据,所以加载了30条数据。问题是我每次打开页面,聊天数据加载完毕之后,滚动条均不能给滚动到最底部,经过研究确定了问题所在。
2、问题产生原因,官方的im-chat.html页面关于页面滚动是这样写的
ui.areaMsgList.scrollTop = ui.areaMsgList.scrollHeight + ui.areaMsgList.offsetHeight;
这样会导致当加载的数据量大的时候,聊天信息还没有加载完成,就已经计算了滚动条位置。
3、解决办法如下:
setTimeout(function(){
ui.areaMsgList.scrollTop = ui.areaMsgList.scrollHeight +ui.areaMsgList.offsetHeight;
},100);
计算滚动条位置的时候,延迟计算。

最后感谢官方提供的模板。

2015-08-08 10:41 负责人:无 分享
已邀请:
小闹

小闹

为什么我使用ui.areaMsgList.scrollTop,始终是0啊,无法滚动到底部,求解?

  • 阿峰

    IOS 滚动到底部呢??? 调用 这个 mui('#pullrefresh').pullRefresh().scrollTo(0, xxx); 为什么不能用?????

    2015-11-17 13:22

chender

chender - 与人为善

通过settimeOut也是治标不治本,如果数据量大点,100ms也是会出问题

  • 大江 (作者)

    是的,你是怎么办的?

    2015-08-22 15:07

  • chender

    我是直接设置的body.scrollTop

    2015-08-22 17:35

小闹

小闹

问题是根本没有生效

  • 大江 (作者)

    我这几天测试,在数据量多的情况下,timeout时间要设置的靠后一些。

    2015-08-22 15:07

  • 小闹

    你好,我想再问一下,你的应用是iOS的还是Android的呢?我在Android下,滚动十分不流畅,不知道你遇到了吗?是如何解决的?谢谢!

    2015-08-24 22:58

  • 小闹

    回复 大江: 如果可以的话,能否将这部分代码分享一下?

    2015-08-25 00:55

阿峰

阿峰

IOS 滚动到底部呢??? 调用 这个 mui('#pullrefresh').pullRefresh().scrollTo(0, xxx); 为什么不能用?????

1***@qq.com

1***@qq.com

为啥不行啊

  • 阿峰

    已经放mui,使用vue+vux自己来实现

    2016-10-30 18:58

该问题目前已经被锁定, 无法添加新回复