jquery添加div实现消息聊天框

上代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style>
* {
    margin: 0;
    padding: 0;
}

.border {
    margin-left: 300px;
    width: 900px;
    background-color: white;
    position: relative;
    border: 1px solid rgb(221, 221, 221);
}

.border .border-next {
    background-color: #dcad50;
    position: relative;
    height: 23px;
    line-height: 40px;
    display: flex;
    padding: 10px 60px 10px 80px;
}

.border-next .people {
    background-color: #dcad50;
    font-size: 20px;
    color: black;
    font-family: 楷体;
    margin-left: 300px;
}

.border .border-second {
    background-color: white;
    margin-left: 0px;
    width: 700px;
    height: 530px;
    flex: 1;
    flex-direction: column;
    overflow-y: auto;
    border-right: 1px solid rgb(221, 221, 221);
    border-bottom: 1px solid rgb(221, 221, 221);
}

.border .border-img {
    background-color: white;
    margin-left: 0px;
    width: 700px;
    height: 30px;
    border-right: 1px solid rgb(221, 221, 221);
    border-bottom: 1px solid rgb(221, 221, 221);
}

.border-bottom {
    display: flex;
    width: 700px;
    height: 120px;
    background-color: white;
    overflow: auto;
    font-size: 20px;
    border-style: solid;
    border-color: #FFFFFF;
    border-right: 1px solid rgb(221, 221, 221);
}

.button {
    display: flex;
    margin-left: 530px;
}

.button .shut {
    background-color: white;
    width: 70px;
    height: 30px;
    font-size: 20px;
    text-align: center;
    border: 1px solid rgb(221, 221, 221);
}

.button .send {
    background-color: white;
    margin-left: 15px;
    width: 70px;
    height: 30px;
    font-size: 20px;
    text-align: center;
    border: 1px solid rgb(221, 221, 221);
    background-color: #DBAC50;
}

.replyChat {
    display:flex;
    width: 150px;
    background: #12B7F5;
    border-radius: 5px;
    /* 圆角 */
    position: relative;
    margin-left: 500px;
    align-content: center;
    margin-bottom: 30px;
}

.sendChat {
    display:flex;
    width: 150px;
    background: #E5E5E5;
    border-radius: 5px;
    /* 圆角 */
    position: relative;
    margin-left: 50px;
    align-content: center;
    margin-bottom: 30px;
    border-color: white white white #E5E5E5;
}

.sendChat span {
    display: inline-block;
    margin-left: 10px;
    line-height: 35px;
}

.replyChat span {
    display: inline-block;
    margin-left: 10px;
    line-height: 35px;
}

.sendChat .arrows {
    position: absolute;
    top: 5px;
    left: -16px;
    /* 圆角的位置需要细心调试哦 */
    width: 0;
    height: 0;
    font-size: 0;
    border: solid 8px;
    border-color: white #E5E5E5 white white;
}

.replyChat .arrow {
    position: absolute;
    top: 5px;
    right: -16px;
    /* 圆角的位置需要细心调试哦 */
    width: 0;
    height: 0;
    font-size: 0;
    border: solid 8px;
    border-color: white white white #12B7F5;
}

.chatTouXiang {
    width: 50px;
    height: 50px;
    border-radius: 50%; 
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url(img/tou.png);
}
.chatCnt{

}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>聊天助手</title>
<script src="js/jquery-1.8.3.min.js"></script>
<script>
    window.onload=function(){
        $(".arrow").hide();
        $(".arrows").hide();
    }
    document.onkeydown = function(e) {
        if (e.keyCode == 13 && e.ctrlKey) {
            // 这里实现换行
            document.getElementById("sendContent").value += "\n";
        } else if (e.keyCode == 13) {
            // 避免回车键换行
            e.preventDefault();
            // 下面写你的发送消息的代码
            f();
        }
    }
    function f() {
        var cnt = $("#sendContent").val();
        if(cnt == '')alert('内容不能为空');   
        if(cnt != ''){
            var node = document.createElement('div');
            node.className = 'sendChat';
            var span = document.createElement('span');
            span.innerHTML = cnt;
            var arrow = document.createElement('div');
            arrow.className = 'arrows';
            node.appendChild(span);
            node.appendChild(arrow);
            $(".border-second").append($(node));
            $("#sendContent").val('');
            $.ajax({
                data : cnt,
                type : "post",
                url : "CharServlet?id=" + cnt,
                dataType : "json",
                success : function(msg) {
                    var node = document.createElement('div');
                    node.className = 'replyChat';
                    var span = document.createElement('span');
                    span.innerHTML = msg.text;
                    var arrow = document.createElement('div');
                    arrow.className = 'arrow';
                    node.appendChild(arrow);
                    node.appendChild(span);

                    $(".border-second").append($(node));

                    var boderSecondDiv = $('.border-second');
                    var lastChild = boderSecondDiv[0].lastChild;
                    var lastChildH = lastChild.offsetTop;
                    var h = 0;
                    for (var i = 0, len = lastChild.children.length; i < len; i++) {

                        h += lastChild.children[i].offsetHeight;
                    }
                    boderSecondDiv[0].scrollTop = lastChildH + h;

                },
                error : function(msg) {
                    alert("请求失败");
                }
            });
        }
    }
</script>
</head>

<div class="frame">
    <div class="border">
        <div class="border-next">
            <div class="people">聊天助手</div>
        </div>
        <div class="border-second">
            <div class="chatCnt">
            <div class="chatTouXiang"></div>  
            <div class="sendChat">
                <span></span>
                <div class="arrows"></div>
            </div>
            </div>
            <div class="replyChat">
                <span></span>
                <div class="arrow"></div>
            </div>
            <br>
        </div>
        <div class="border-img"></div>
        <textarea id="sendContent" class="border-bottom"></textarea>
        <div class="button">
            <button class="shut">关闭</button>
            <button id="selectBtn" class="send" onclick="f()">发送</button>
        </div>

    </div>
</div>
</body>
</html>

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一个简单的聊天对话界面的HTML和jQuery代码: HTML代码: ```html <div id="chatbox"> <ul id="conversation"></ul> <input type="text" id="message" placeholder="Type message here..." /> <button id="send">Send</button> </div> ``` jQuery代码: ```javascript $(function() { var socket = io.connect(); // 连接socket.io服务器 // 当接收到新消息时,添加到对话中 socket.on('new message', function(data) { $('#conversation').append('<li>' + data.username + ': ' + data.message + '</li>'); }); // 当点击发送按钮或按下回车键时,发送消息 $('#send').click(function() { sendMessage(); }); $('#message').keypress(function(event) { if (event.keyCode == 13) { sendMessage(); } }); // 发送消息到服务器 function sendMessage() { var message = $('#message').val(); if (message != '') { socket.emit('send message', { message: message }); $('#message').val(''); } } }); ``` 说明: 1. HTML代码包含一个`<ul>`元素用于显示对话信息,一个`<input>`元素用于输入消息,和一个`<button>`元素用于发送消息。 2. jQuery代码使用socket.io库连接到服务器,当接收到新消息时,将其添加到对话中。 3. 当用户点击发送按钮或按下回车键时,会调用`sendMessage()`函数,该函数将消息发送到服务器并清空输入。 需要注意的是,以上代码仅提供了一个简单的聊天对话实现。如果您需要更复杂的功能或界面,可能需要进行更多的开发和定制。 ### 回答2: 聊天对话界面是一个常见的Web页面设计需求,用HTML和jQuery可以很方便地实现。 首先,我们需要一个HTML布局来展示聊天对话。可以使用无序列表(<ul>)来显示每条消息,每条消息使用一个列表项(<li>)进行包裹。列表项的内容可以是一个<div>,用来展示具体的消息内容。为了方便样式的管理,可以给每个<div>添加自定义类名,比如"class='message'"。 接下来,需要借助jQuery实现发送和接收消息的功能。我们可以通过点击发送按钮来触发发送消息的操作。在jQuery中,可以使用事件监听函数(event listener)来监听按钮的点击事件,比如使用".click()"函数。然后,在事件处理函数中,获取输入中的文本内容,然后将其添加聊天对话的HTML结构中,可以使用jQuery的".append()"方法。同时,为了保证良好的用户体验,还可以使用滚动条让聊天对话自动滚动到最新的消息处,可以使用jQuery的".scrollTop()"方法。 接收消息的过程可以模拟一个定时器,每隔一段时间发送一个虚拟的消息。可以使用jQuery的".setInterval()"函数来实现定时器的功能。在定时器的回调函数中,可以使用相同的方法将接收到的消息添加聊天对话中。 最后,可以使用CSS样式表来美化聊天对话界面,包括设置背景颜色、字体颜色、边样式等。 综上所述,通过HTML和jQuery的结合,可以实现一个简单的聊天对话界面,其中HTML负责页面的结构布局,而jQuery负责实现发送和接收消息的功能。 ### 回答3: 聊天对话界面的HTML和jQuery代码如下: HTML代码: ```html <!DOCTYPE html> <html> <head> <title>聊天对话界面</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="chat-container"> <div id="chat-messages"></div> <div id="chat-input"> <input type="text" id="message-input" placeholder="请输入消息..."> <button id="send-button">发送</button> </div> </div> <script src="jquery.js"></script> <script src="script.js"></script> </body> </html> ``` 在上面的HTML代码中,我们创建了一个包含聊天消息和输入聊天对话界面。 CSS代码(style.css)用来美化聊天界面的样式,这里省略不写。 jQuery代码(script.js): ```javascript $(document).ready(function() { // 发送按钮点击事件 $('#send-button').click(function() { sendMessage(); }); // 输入回车事件 $('#message-input').keypress(function(e) { if (e.which == 13) { sendMessage(); } }); // 发送消息的函数 function sendMessage() { var message = $('#message-input').val(); // 获取输入中的消息 if (message.trim() != '') { var newMessage = $('<div class="message"></div>').text(message); // 创建一个新的消息元素 $('#chat-messages').append(newMessage); // 将新的消息元素添加聊天消息容器中 $('#message-input').val(''); // 清空输入 $('#chat-messages').scrollTop($('#chat-messages')[0].scrollHeight); // 滚动到最新的消息 } } }); ``` 以上的jQuery代码使用了`$(document).ready()`函数,确保在整个页面加载完成后执行代码。然后将发送按钮和输入添加了点击事件和回车事件监听器,并定义了一个函数来处理发送消息的逻辑。 在发送消息的函数中,首先获取输入中的消息内容,判断是否为空。如果不为空,则创建一个新的消息元素,并将其添加聊天消息容器中。接着清空输入中的内容,并将聊天消息容器滚动到最新的消息位置,保持最新消息的可见性。 以上便是聊天对话界面的HTML和jQuery代码的解答,希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值