【问题标题】:Fix textbox at the bottom of chatbox and implement scroll [duplicate]修复聊天框底部的文本框并实现滚动
【发布时间】:2020-08-04 09:02:21
【问题描述】:

我需要将文本框固定在聊天框的底部并保持在那里,无论有多少消息,现在它是在最后一条消息之后。如果有人可以帮助我实现滚动,将视图向下移动到最后一条消息,那就太好了。现在,如果我添加的消息多于所需高度,它就会开箱即用。

.chatbox {
  position: relative;
  background-color: #fff;
  max-width: 350px;
  height: 400px;
  margin: 20px;
  border-radius: 10px;
  font-family: Avenir;
  font-size: 14px;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

.nav {
  background-color: #0077fb;
  height: 30px;
  padding: 10px;
  color: #ffff;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  display: flex;
  align-items: center;
}

.chatbody {
  padding: 10px 10px;
}

#bot {
  padding: 10px;
  float: left;
  margin: 5px;
  max-width: 90%;
  display: table;
  clear: both;
  margin-left: 15px;
  background-color: #edefed;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

#user {
  padding: 10px;
  float: right;
  max-width: 70%;
  background-color: #0077fb;
  margin: 5px;
  color: white;
  margin-right: 15px;
  display: table;
  clear: both;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  border-bottom-left-radius: 20px;
}

#text {
  width: 90%;
  outline: none;
  border: none;
  padding: 10px;
  border-radius: 50px;
  margin-top: 7px;
  margin-left: 10px;
}

.icon {
  padding: 15px;
  color: #0077fb;
  right: -30px;
  min-width: 50px;
  position: absolute;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<container>
  <div class="chatbox">
    <div class="nav">
      <span>Alice</span>
    </div>
    <div class="chatbody">
      <div id="bot">Hi there</div>
      <div id="bot">How are you doing ?</div>
      <div id="user">I am doing good</div>
      <div id="bot">Awesome. So how can I help you today ?</div>
    </div>
    <div>
      <input type="text" id="text" name="" placeholder="Message" autocomplete="off">
      <i class="fa fa-send icon"></i>
    </div>
  </div>
</container>

【问题讨论】:

标签: javascript html jquery css


【解决方案1】:

我已向您的一个名为 .message 的 div 添加了一个类,并使用了以下代码:

.message {
  position: absolute;
  bottom: 0;
  width: 100%;
}

工作演示

.chatbox {
  position: relative;
  background-color: #fff;
  max-width: 350px;
  height: 400px;
  margin: 20px;
  border-radius: 10px;
  font-family: Avenir;
  font-size: 14px;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

.nav {
  background-color: #0077fb;
  height: 30px;
  padding: 10px;
  color: #ffff;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  display: flex;
  align-items: center;
}

.chatbody {
  padding: 10px 10px;
}

#bot {
  padding: 10px;
  float: left;
  margin: 5px;
  max-width: 90%;
  display: table;
  clear: both;
  margin-left: 15px;
  background-color: #edefed;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

#user {
  padding: 10px;
  float: right;
  max-width: 70%;
  background-color: #0077fb;
  margin: 5px;
  color: white;
  margin-right: 15px;
  display: table;
  clear: both;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  border-bottom-left-radius: 20px;
}

#text {
  width: 90%;
  outline: none;
  border: none;
  padding: 10px;
  border-radius: 50px;
  margin-top: 7px;
  margin-left: 10px;
}

.icon {
  padding: 15px;
  color: #0077fb;
  right: -30px;
  min-width: 50px;
  position: absolute;
}

.message {
  position: absolute;
  bottom: 0;
  width: 100%;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<container>
  <div class="chatbox">
    <div class="nav">
      <span>Alice</span>
    </div>
    <div class="chatbody">
      <div id="bot">Hi there</div>
      <div id="bot">How are you doing ?</div>
      <div id="user">I am doing good</div>
      <div id="bot">Awesome. So how can I help you today ?</div>
    </div>
    <div class="message">
      <input type="text" id="text" name="" placeholder="Message" autocomplete="off">
      <i class="fa fa-send icon"></i>
    </div>
  </div>
</container>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 2010-09-15
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    相关资源
    最近更新 更多