【发布时间】:2018-12-22 07:33:28
【问题描述】:
我有一个通过 URL 下载的网络聊天小部件,但我需要设置小部件的样式,以便滚动条的底部始终显示最新消息。我找到了一种使用 CSS 的方法,但还没有实现。
如果我添加display: -webkit-flex;,我会得到我所需要的,但聊天窗口的宽度会神秘地缩短。我试过添加宽度属性,但是当我运行它时它们被忽略了。
然后,如果我使用display: -webkit-flex; 和flex-direction:column-reverse,宽度将保持它所在容器的全宽,并且焦点在我想要的底部,但滚动条消失了,因此用户无法查看过去的消息。我也尝试了一些 javascript 方法,但是当我将它们添加到我的 .pug 文件中的脚本时,它们似乎也被忽略了。
如何让我的聊天窗口将滚动焦点保持在底部(无需滚动即可查看新消息)并且仍然能够再次手动滚动到顶部以查看旧消息?我对 CSS、HTML 或 JavaScript 中的解决方案持开放态度。由于 HTML 很容易进入 Pug 格式,因此我将其作为标签包含在内,即使我在 UI 中使用 Pug。
index.pug
chat-window
#webchat(action='/chat', method='POST')
script(src='https://cdn.botframework.com/botframework-webchat/latest/webchat.js')
script.
const styleSet = window.WebChat.createStyleSet({
bubbleBackground: 'rgba(252, 229, 53, 1)',
bubbleFromUserBackground: 'rgba(4, 234, 104, 1)',
paddingRegular: 10,
sendBoxHeight: 50,
});
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxx' }),
styleSet
}, document.getElementById('webchat'));
main.css
chat-window {
border-style: solid;
border-width: 2px 2px 1px 1px;
border-color: #000080;
float: left;
padding-top: 40px;
padding-bottom: 40px;
width: 70%;
background-color: #5a8cb1;
height: 350px;
}
#webchat {
max-height: 270px;
margin-bottom: 20px;
width: 100%;
overflow: auto;
display: -webkit-flex;
}
【问题讨论】: