JavaScript聊天输入框消息发送页面(ES6+普通写法)

 JavaScript聊天输入框消息ES6

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>聊天对话框</title>
  <!-- css -->
  <style type="text/css">
    * {
      font-size: 14px;
      padding: 0;
      margin: 0;
    }

    .main {
      position: relative;
      margin: 20px auto;
      border: 1px solid steelblue;
      width: 430px;
      height: 400px;
    }

    .msgInput {
      display: block;
      width: 406px;
      height: 60px;
      margin: 10px auto;
    }

    .sendbtn {
      position: absolute;
      width: 100px;
      height: 29px;
      bottom: 5px;
      right: 10px;
    }

    .content {
      list-style: none;
      width: 410px;
      height: 280px;
      margin: 5px auto;
      border: 1px dotted #d1d3d6;
      overflow-y: scroll;
    }

    .msgContent {
      width: auto;
      max-width: 250px;
      height: auto;
      word-break: break-all;
      margin: 5px;
      padding: 3px;
      border-radius: 5px;
    }

    .content .left {
      float: left;
      text-align: left;
      background-color: lightgrey;
    }

    .content .right {
      float: right;
      text-align: right;
      background-color: yellowgreen;
    }
  </style>
</head>
<!-- HTML -->
<body>
  <div id="main" class="main">
    <ul id="content" class="content">
      <li class="msgContent left">hello?</li>
      <div style="clear: both"></div>
      <li class="msgContent left">hello</li>
      <div style="clear: both"></div>
      <li class="msgContent right">hi</li>
      <div style="clear: both"></div>
      <li class="msgContent left">hehe</li>
      <div style="clear: both"></div>
      <li class="msgContent left">goodbye</li>
      <div style="clear: both"></div>
      <li class="msgContent right">。。。。</li>
      <div style="clear: both"></div>
      <li class="msgContent right">
        你好scdn
      </li>
      <div style="clear: both"></div>

      <li class="msgContent right">在吗?
      </li>
      <div style="clear: both"></div>
    </ul>
    <textarea id="msg_input" class="msgInput"></textarea>
    <button id="sendbtn" class="sendbtn">发送</button>
  </div>

  <!-- JavaScript -->
  <script>
    //取textarea,button,ul元素
    let textarea = document.querySelector("#msg_input");
    let button = document.querySelector("#sendbtn");
    let oUl = document.querySelector('.content')
    //声明函数(封装)
    function message() {
      //获取并显示输入的值
      let msg = textarea.value;
      //console.log(msg);

      //创建元素节点createElement
      let lis = document.createElement("li");
      //console.log(lis);
      lis.className = "msgContent right";
      lis.innerHTML = msg;
      let oDiv = document.createElement("div");
      //清除左右浮动
      oDiv.style.clear = "both";
      //插入li消息,oDive浮动节点到UL中
      oUl.appendChild(lis);
      oUl.appendChild(oDiv);
      textarea.value = "";
      //始终显示滚动到最新消息
      lis.scrollIntoView();
    }
    //发送button加点击事件,调用封装函数message()
    button.onclick = () => {
      message();
    }
    //添加键盘事件,按Enter建发送消息,调用封装函数message()
    textarea.onkeydown = event => {
      if (event.keyCode === 13) {
        message();
      }
    }
  </script>
</body>

</html>

 JavaScript聊天输入框消息普通写法

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>聊天对话框</title>
    <style type="text/css">
        * {
            font-size: 14px;
            padding: 0;
            margin: 0;
        }

        .main {
            position: relative;
            margin: 20px auto;
            border: 1px solid steelblue;
            width: 430px;
            height: 400px;
        }

        .msgInput {
            display: block;
            width: 406px;
            height: 60px;
            margin: 10px auto;
        }

        .sendbtn {
            position: absolute;
            width: 100px;
            height: 29px;
            bottom: 5px;
            right: 10px;
        }

        .content {
            list-style: none;
            width: 410px;
            height: 280px;
            margin: 5px auto;
            border: 1px dotted #d1d3d6;
            overflow-y: scroll;
        }

        .msgContent {
            width: auto;
            max-width: 250px;
            height: auto;
            word-break: break-all;
            margin: 5px;
            padding: 3px;
            border-radius: 5px;
        }

        .content .left {
            float: left;
            text-align: left;
            background-color: lightgrey;
        }

        .content .right {
            float: right;
            text-align: right;
            background-color: yellowgreen;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            //		li.scrollIntoView();//将元素滚动到可见位置
        };
    </script>
</head>

<body>
    <div id="main" class="main">
        <ul id="content" class="content">
            <li class="msgContent left">hello?</li>
            <div style="clear: both"></div>
            <li class="msgContent left">hello</li>
            <div style="clear: both"></div>
            <li class="msgContent right">hi</li>
            <div style="clear: both"></div>
            <li class="msgContent left">hehe</li>
            <div style="clear: both"></div>
            <li class="msgContent left">goodbye</li>
            <div style="clear: both"></div>
            <li class="msgContent right">。。。。</li>
            <div style="clear: both"></div>
            <li class="msgContent right">
                sdfasdsadfassdfsdfsdfdsfsdfsdfsdfdfasdffasdfasfdasd fasd fasd
                fasdfasdfasdf
            </li>
            <div style="clear: both"></div>

            <li class="msgContent right">aaa</li>
            <div style="clear: both"></div>
        </ul>
        <textarea id="msg_input" class="msgInput"></textarea>
        <button id="sendbtn" class="sendbtn">发送</button>
    </div>

    <script>
        /* 
              1- 找到元素
              2- 给btn添加点击事件,
              3- 点击的时候获取输入框的值,
              根据值创建 li和div 添加到ul里面
           */

        var msg_input = document.querySelector("#msg_input");
        var sendbtn = document.querySelector("#sendbtn");
        var content = document.querySelector("#content");
        function sendmsg() {
            var msg = msg_input.value;
            var newli = document.createElement("li");
            newli.innerHTML = msg;
            newli.className = "msgContent right";
            var oDiv = document.createElement("div");
            oDiv.style.clear = "both";
            // console.log(newli);
            content.appendChild(newli);
            content.appendChild(oDiv);

            newli.scrollIntoView();// 滚动到可视区
            msg_input.value = "";

        }
        sendbtn.onclick = function () {
            sendmsg()
        }
        msg_input.onkeydown = function (e) {
            if (e.keyCode == 13) {
                sendmsg();
            }
        }

    </script>
</body>

</html>

呈现结果:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值