移动端聊天(类似微信)——显示最新消息、输入框随内容自适应高度、模仿发送消息后清空输入框并恢复初始高度

ps:对应的html代码请参考我写的https://mp.csdn.net/postedit/87929498

 

一、显示最新消息即:页面一加载,或发送消息的时候,都能显示最新的消息,让滚动条保持在底部。

参考了:http://www.cnblogs.com/hnyei/archive/2011/09/20/2182199.html  但是他提供的方法中,我试了一下,只有scrollIntoView()对我有效。对scrollIntoView()方法更详细的解释可以参考http://www.cnblogs.com/cnhkzyy/p/9233314.html

(有一个没有实现:就是手机的虚拟键盘弹出来时,整个页面没有整体上移,导致输入框挡住了最新的消息,只能手动上划;只有在发送了新消息之后才会自动显示最新消息;查了一下没找到合适的方法,貌似都是安卓比较多,如果哪位大神有js就能解决的方法,欢迎留言讨论!)

二、输入框随内容自适应高度:类似于微信聊天输入框,随着内容增多换行,输入框会变高到一定高度后不再变化而是出现滚动条;发送消息后输入框又恢复了初始的高度。

三、发送消息:发送消息后清空输入框内容、历史消息显示最新发送的消息、输入框恢复初始高度;不能发送空消息(空格、换行)

 

js代码:

<script type="text/javascript">
    //滚动条保持在底部
    function sclloBottom(){
        msg_end.scrollIntoView();
    }
    //调整输入框高度
    //先要获取一次键盘的高度,不然会出现挤压的情况
    var firstHeight=$("#msg-content")[0].scrollHeight;
    $("#msg-content").height(firstHeight);
    $("#msg-content").on("keyup keydown", function(){
        if(this.scrollHeight<=79){
            $(this).height(this.scrollHeight);
        }else{
            $(this).height("79");
        }
    });
    //测试:点击发送插入消息
    $("#send-msg").on("click",function(){
            var text=$("#msg-content").val();
            if(text=="" || text.match(/^\s+$/g)){
                alert("消息不能为空");
            }else{
                var html='<div class="admin-group"><img class="admin-img" src="img/kh-02.png"/><div class="admin-msg"><i class="triangle-admin"></i><pre class="admin-reply">'+text+'</pre></div></div>';
                $('.mobile-page').append(html);
                $("#msg-content").val("").focus();//清空输入框并获取焦点
                sclloBottom();//保持滚动条在底部
                $("#msg-content").height(firstHeight);//恢复初始高度
            }
    });
    
</script>

 

发布了24 篇原创文章 · 获赞 2 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览