赞
踩
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>聊天窗口</title>
- <!-- 引入 Vue.js -->
- <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
- <style>
- /* 样式 */
- body {
- font-family: Arial, sans-serif;
- margin: 0;
- padding: 20px;
- }
- .chat-container {
- width: 400px;
- margin: 0 auto;
- border: 1px solid #ccc;
- border-radius: 5px;
- overflow: hidden;
- }
- .chat-messages {
- height: 300px;
- overflow-y: scroll;
- padding: 10px;
- background-color: #f2f2f2;
- }
- .message {
- margin-bottom: 10px;
- }
- .message.sender {
- text-align: right;
- }
- .message.receiver {
- text-align: left;
- }
- .message-content {
- display: inline-block;
- padding: 5px 10px;
- border-radius: 5px;
- background-color: #007bff;
- color: #fff;
- }
- .message-content.receiver {
- background-color: #ccc;
- color: #000;
- }
- .input-container {
- padding: 10px;
- border-top: 1px solid #ccc;
- }
- .input-container input[type="text"] {
- width: 80%;
- padding: 8px;
- border: 1px solid #ccc;
- border-radius: 3px;
- outline: none;
- }
- .input-container button {
- padding: 8px 15px;
- border: none;
- border-radius: 3px;
- background-color: #007bff;
- color: #fff;
- cursor: pointer;
- }
- </style>
- </head>
- <body>
- <div id="app">
- <div class="chat-container">
- <div class="chat-messages" ref="chatMessages">
- <div class="message sender" v-for="(message, index) in messages" :key="index">
- <div class="message-content">{{ message }}</div>
- </div>
- </div>
- <div class="input-container">
- <input type="text" v-model="newMessage" @keyup.enter="sendMessage" placeholder="输入消息...">
- <button @click="sendMessage">发送</button>
- </div>
- </div>
- </div>
-
- <script>
- new Vue({
- el: '#app',
- data() {
- return {
- messages: [
- '你好,这是一条测试消息。',
- '你可以在这个聊天窗口中输入消息进行聊天。',
- '接下来,我会模拟对话的过程。',
- ],
- newMessage: '',
- };
- },
- methods: {
- sendMessage() {
- if (this.newMessage.trim() !== '') {
- this.messages.push(this.newMessage.trim());
- this.newMessage = '';
- // 滚动到底部
- this.$nextTick(() => {
- const chatMessages = this.$refs.chatMessages;
- chatMessages.scrollTop = chatMessages.scrollHeight;
- });
- }
- },
- },
- });
- </script>
- </body>
- </html>
v-model
实现输入框与数据的双向绑定,使得输入框中的内容能够实时反映到数据上。v-for
指令遍历 messages
数组,渲染出聊天消息列表。@click
和 @keyup.enter
监听按钮点击事件和键盘回车事件,实现发送消息的功能。$nextTick
在消息发送后滚动聊天窗口到底部。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
各位同学们:还有啥想看的功能或者特效不?欢迎在评论区留言哦!
本人承接网网站开发,如有需要,欢迎私信咨询!
如果您感觉文章对您有帮助~
那就打赏一下,请笔者喝杯咖啡吧~
了解基础知识:
实践项目:
学习工具和框架:
关注前端趋势:
培养解决问题的能力:
不断学习和提升:
注重代码质量和可维护性:
参与社区和交流:
总之,学习前端开发需要耐心和毅力,要保持对技术的热情和兴趣,不断学习和提升自己。通过实践项目、学习工具和框架、关注前端趋势等方式,你可以逐渐成为一名优秀的前端开发者。
加油吧!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。