js+css实现响应式自适应兼容手机的聊天对话框交互通讯效果代码

代码语言:html

所属分类:响应式

代码描述:js+css实现响应式自适应兼容手机的聊天对话框交互通讯效果代码

代码标签: js css 兼容 手机 响应式 聊天 对话 交互 通讯

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">

<style>
    * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background-color: #673ab7;
}

body,
button,
input,
select {
  font-family: Source Sans Pro, sans-serif;
}

.bot-response {
    font-size: 17px;
    line-height: 24px;
    border-radius: 20px;
    word-wrap: break-word;
    max-width: fit-content;
    padding: 15px 17px;
    background: rgb(255, 255, 255);
    color: rgb(0, 0, 0);
    margin-top: 10px;
}

.text[text-first] {
  border-bottom-left-radius: 5px;
  margin-top: 0;
}

.text[text-middle] {
  border-bottom-left-radius: 5px;
  border-top-left-radius: 5px;
}

.text[text-last] {
  border-top-left-radius: 5px;
}

.massage[data-user="true"] {
  display: flex;
  justify-content: flex-end;
}

.msgCaption {
  padding: 0 25px 10px !important;
  padding-top: 10px !important;
}

.user-response {
    background: rgb(0, 102, 255);
    color: rgb(255, 255, 255);
    font-size: 17px;
    line-height: 24px;
    border-radius: 20px;
    max-width: 250px;
    padding: 15px 17px;
    border-bottom-right-radius: 5px;
    word-break: break-all;
    white-space: normal;
}

.massage {
  padding: 0 25px 0px;
}

.massage img {
  width: 100%;
  height: 217px;
  background: white;
  border-radius: 10px;
  margin-bottom: 6px;
}

.captionBot img {
  width: 18px;
  height: 18px;
  border-radius: 100%;
}

.captionBot {
  display: flex;
  justify-content: space-between;
  padding: 0 25px;
  width: 117px;
  font-size: 14px;
  color: rgb(24, 25, 25);
}

a {
  text-decoration: none;
}

.by a {
  font-size: 14px;
  font-weight: 600;
  margin-left: 3px;
}

.by {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 30px;
  border-top: 1px solid rgb(238, 238, 238);
}

.by span {
  color: rgb(155, 166, 178);
  font-size: 12px;
  font-weight: 600;
}

.InputMSG {
  outline: none;
  border: none;
  width: 100%;
  height: 50px;
  padding-left: 15px;
  font-size: 1.1rem;
}

.InputMSG::placeholder {
  font-size: 1.1rem;
  color: rgb(155, 166, 178);
}

.BoxSentMSG {
  display: flex;
  align-items: center;
  width: 100%;
  height: 50px;
}

.send-icon {
  display: flex;
  background-color: white;
  width: 26px;
  height: 26px;
  margin: 0 13px;
  cursor: pointer;
}

.ContentChat {
  background: rgb(234, 238, 243);
  width: 100%;
  height: 400px;
  overflow-y: scroll;
}

.ContentChat::before {
  content: "";
  display: block;
  height: 20px;
  width: 100%;
}

.ContentChat::after {
  content: "";
  display: block;
  height: 20px;
  width: 100%;
}

.AvatarBot {
  display: grid;
  position: relative;
  justify-content: center;
  align-items: center;
}

.AvatarBot:after {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 100%;
  border: 1px solid rgb(255, 255, 255);
  background: rgb(105, 222, 64);
  position: absolute;
  bottom: 1px;
  right: 1px;
}

.InfoBot {
  margin-left: 17px;
}

.status {
  color: rgb(155, 166, 179);
}

.TitleBot {
  font-size: 24px;
  font-weight: 600;
  white-space: nowrap;
}

.AvatarBot img {
  width: 50px;
  height: 50px;
}

.top {
  display: flex;
  align-items: center;
  height: 90px;
  width: 100%;
  padding-left: 13px;
  -webkit-box-shadow: 0 9.5px 12.7px 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 9.5px 12.7px 0 rgba(0, 0, 0, 0.05);
}

.container {
  width: 400px;
  height: 570px;
  background-color: white;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  border-radius: 15px;
  margin: 50px auto;
}

.InputMSG:valid ~ .send-icon svg path {
  fill: #0066ff;
}

.none {
  display: none;
}

@media only screen and (max-width: 500px) {
  .container {
    width: 100%;
    height: 100%;
    border-radius: 0px;
  }
  body {
    display: block;
    height: calc(100vh - 170px);
    overflow: auto;
  }
  .ContentChat {
    height: 100%;
    margin-top: 90px;
    margin-bottom: 80px;
    overflow: auto;
  }
  .top {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background-color: white;
  }
  .BoxSentMSG {
    position: fixed;
    bottom: 30px;
    left: 0;
    right: 0;
    background-color: white;
  }
  .by {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: white;
  }
}
</style>
</head>
<body>
<!-- partial:index.partial.html -->
<div class="container">
        <div class="top">
            <div class="AvatarBot">
                <img src="//repo.bfw.wiki/bfwrepo/icon/6413f21abdbea.png" alt="RagBot">
            </div>
            <div class="InfoBot">
                <p class="TitleBot">RagBot</p>
                <p class="status">Online</p>
            </div>
        </div>
        <div class="ContentChat"></div>
        <div class="BoxSentMSG ">
            <input type="text " placeholder="Type your message here " class="InputMSG " required>
            <div class="send-icon">
                <svg id="send1" xmlns="http://www.w3.org/2000/svg " viewBox="0 0 24 24 " xml:space="preserve ">
                    <path fill="#d7d7d7 "
                        d="M22,11.7V12h-0.1c-0.1,1-17.7,9.5-18.8,9.1c-1.1-0.4,2.4-6.7,3-7.5C6.8,12.9,17.1,12,17.1,12H17c0,0,0-0.2,0-0.2c0,0,0,0,0,0c0-0.4-10.2-1-10.8-1.7c-0.6-0.7-4-7.1-3-7.5C4.3,2.1,22,10.5,22,11.7z ">
                    </path>
                </svg>
                <svg id="send2" class="none" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="30px" viewBox="0 0 24 30" style="enable-background:new 0 0 50 50;" xml:space="preserve">
                    <rect x="0" y="10" width="4" height="10" fill="#333" opacity="0.2">
                        <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                        <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                        <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                    </rect>
                    <rect x="8" y="10" width="4" height="10" fill="#333" opacity="0.2">
                        <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.15s"
                            dur="0.6s" repeatCount="indefinite"></animate>
                        <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.15s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                        <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.15s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                    </rect>
                    <rect x="16" y="10" width="4" height="10" fill="#333" opacity="0.2">
                        <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.3s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                        <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.3s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                        <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.3s" dur="0.6s"
                            repeatCount="indefinite"></animate>
                    </rect>
                </svg>
            </div>
        </div>
       
    </div>
<!-- partial -->
  <script src='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&amp;display=swap'></script><script >



var send_icon = document.getElementsByClassName("send-icon")[0];
var input = document.getElementsByClassName("InputMSG")[0];
var ContentChat = document.getElementsByClassName("ContentChat")[0];
var san1 = document.getElementById("send1");
var san2 = document.getElementById("send2");
// Add event Click for icon send input massage

sen.........完整代码请登录后点击上方下载按钮下载查看

网友评论0