好用的聊天页面显示最后一条记录

参考:参考

 

/**
         * @author gongliying
         * @date 2019-07-26
         * @information 跳转页面底部
         */
        scrollToBottom: function () {
            let that = this;
            let query = uni.createSelectorQuery();
            query.selectAll('.m-item').boundingClientRect();
            query.select('#scrollview').boundingClientRect();
            query.exec((res) => {
                that.style.mitemHeight = 0;
                res[0].forEach((rect) => that.style.mitemHeight = that.style.mitemHeight + rect.height + 40)   //获取所有内部子元素的高度
           // 因为vue的虚拟DOM 每次生成的新消息都是之前的,所以采用异步setTimeout    主要就是添加了这红字				           setTimeout(() => {
                  if (that.style.mitemHeight > (that.style.contentViewHeight - 100)) {   //判断子元素高度是否大于显示高度
                      that.scrollTop = that.style.mitemHeight - that.style.contentViewHeight    //用子元素的高度减去显示的高度就获益获得序言滚动的高度
                  }         }, 100)
       })
        }
    export default { 
created () {		   const res = uni.getSystemInfoSync();   //获取手机可使用窗口高度     api为获取系统信息同步接口		   this.style.pageHeight = res.windowHeight;		   this.style.contentViewHeight = res.windowHeight - uni.getSystemInfoSync().screenWidth / 750 * (100) - 70; //像素   因为给出的是像素高度 然后我们用的是upx  所以换算一下 		   this.scrollToBottom();   //创建后调用回到底部方法	 }, 


 data (){
     // 聊天页面时时滚动样式
return
        style: {
            pageHeight: 0,
            contentViewHeight: 0,
            footViewHeight: 90,
            mitemHeight: 0
        },  }}

但是不知道,如何在进入页面之后,马上滑动到最底部。原文一句话:“要是想要进入页面就滚到最底部呢  我们是在socket链接读取文件的时候调用了这个方法”,看不懂,不知道在哪里调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 为了写一个能够自适应页面大小的聊天前端代码模板,可以使用CSS媒体查询来实现响应式设计,以便能够根据页面的大小来自动调整布局和大小。 以下是一个简单的代码模板: ``` <style> body { margin: 0; width: 100%; overflow-x: hidden; } #chatroom { width: 100%; max-width: 500px; } @media screen and (max-width: 500px) { #chatroom { width: 100%; } } </style><div id="chatroom"> <!-- Your chatroom code goes here --> </div> ``` ### 回答2: 聊天前端代码模板可采用以下方式实现页面自适应大小: 1. HTML结构: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>聊天室</title> <style> #chat-container { display: flex; flex-direction: column; height: 100vh; } #chat-messages { flex: 1; overflow-y: auto; } #input-area { display: flex; justify-content: center; align-items: center; padding: 10px; } #input-area input { width: 80%; height: 30px; } </style> </head> <body> <div id="chat-container"> <div id="chat-messages"> <!-- 聊天消息显示区域 --> </div> <div id="input-area"> <input type="text" id="input-message" placeholder="请输入消息内容"> <button id="send-button">发送</button> </div> </div> <script src="script.js"></script> </body> </html> ``` 2. CSS样式: 上述HTML结构中的样式设置实现了聊天页面的自适应大小效果。 - `#chat-container`使用了flex布局,容器高度设置为100vh,即占据整个可视区域的高度。 - `#chat-messages`设置为flex: 1,表示自动占据剩余空间,并将超出容器高度的内容进行滚动显示。 - `#input-area`使用了flex布局,内容居中显示,并添加了一定的内边距。 - `#input-area input`设置了宽度为80%,高度为30px。 3. JavaScript交互: 在script.js文件中,可以通过获取页面元素和添加事件监听器等方式实现聊天室的功能。 ```javascript window.onload = function() { var sendButton = document.getElementById("send-button"); var inputMessage = document.getElementById("input-message"); var chatMessages = document.getElementById("chat-messages"); sendButton.addEventListener("click", function() { var messageText = inputMessage.value; var messageElement = document.createElement("div"); messageElement.textContent = messageText; chatMessages.appendChild(messageElement); inputMessage.value = ""; }); }; ``` 在以上JavaScript代码中,获取了发送按钮、输入框和聊天消息显示区域的元素,并对发送按钮的"click"事件进行监听。当点击发送按钮时,获取输入框中的文本内容,创建一个div元素用于显示消息,并将其添加到聊天消息显示区域的末尾。之后,清空输入框的内容,以便继续输入下一条消息。 通过以上HTML、CSS和JavaScript的组合实现,聊天前端代码模板就能够自适应页面大小,并具备了基本的消息发送和显示功能。 ### 回答3: 要实现一个能够自适应页面大小的聊天前端代码模板,我们可以运用一些HTML、CSS和JavaScript的知识。以下是一个简单的代码模板: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>自适应聊天室</title> <style> body { margin: 0; padding: 0; font-family: Arial, sans-serif; } #chatroom { width: 100%; height: 100vh; display: flex; flex-direction: column; } #message-container { flex: 1; overflow-y: scroll; padding: 10px; } #input-container { display: flex; padding: 10px; } #input-field { flex: 1; margin-right: 10px; padding: 5px; } #send-button { padding: 5px 10px; background-color: #007bff; color: white; border: none; } </style> </head> <body> <div id="chatroom"> <div id="message-container"></div> <div id="input-container"> <input type="text" id="input-field" placeholder="请输入消息..."> <button id="send-button">发送</button> </div> </div> <script> // 获取DOM元素 const messageContainer = document.getElementById('message-container'); const inputField = document.getElementById('input-field'); const sendButton = document.getElementById('send-button'); // 监听发送按钮点击事件 sendButton.addEventListener('click', () => { const message = inputField.value; // 发送消息逻辑... // 清空输入框 inputField.value = ''; }); // 监听输入框回车键事件 inputField.addEventListener('keyup', (event) => { if (event.keyCode === 13) { sendButton.click(); } }); // 渲染接收到的消息 function renderMessage(message) { const messageElement = document.createElement('div'); messageElement.innerText = message; messageContainer.appendChild(messageElement); messageContainer.scrollTop = messageContainer.scrollHeight; } // 接收到消息后的处理逻辑... </script> </body> </html> ``` 上述代码中,我们将聊天窗口容器`#chatroom`设置为占据整个页面,并使用`display: flex;`实现了竖直方向的布局。消息容器`#message-container`使用`flex: 1;`将剩余空间填充,并设置了滚动条样式。输入框和发送按钮也进行了相应的布局设置。 通过JavaScript,我们可以监听发送按钮点击事件和输入框回车键事件,实现消息的发送和回车发送功能。此外,还提供了一个`renderMessage`函数用于渲染接收到的消息,并保持消息滚动条自动滚动到最底部。 该代码模板可以根据不同的页面大小自适应调整布局,并提供基本的聊天室交互功能。当接收到新消息时,滚动条也会相应地自动滚动到最底部,确保用户始终可以看到最新的消息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值