使用html 和javascript 实现微信界面功能1

news2024/12/12 10:23:08

1.功能说明:

  1. 搜索模块:

    • 提供一个搜索框,但目前没有实现具体的搜索功能。
  2. 好友模块:

    • 在左侧的“好友”部分有一个“查看好友”按钮。
    • 点击左侧的“查看好友”按钮时,会在右侧显示所有好友的列表。
    • 列表中每个好友可以点击查看详情,包括状态(正常/已拉黑)、聊天按钮、删除好友按钮和拉黑好友按钮。
    • 如果好友已被拉黑,则聊天按钮会被禁用。
    • 删除好友和拉黑好友操作通过确认弹窗进行。
    • 右侧还会显示一个“添加好友”的按钮,方便随时添加新的好友。
  3. 收藏模块:

    • 在左侧的“收藏”部分有一个“查看收藏”按钮。
    • 点击左侧的“查看收藏”按钮时,会在右侧显示所有收藏内容的列表。
    • 列表中每个收藏内容可以点击查看详情,包括点赞和删除操作。
    • 右侧还会显示一个“新增收藏内容”的按钮,方便随时添加新的收藏内容。
    • 删除收藏操作通过确认弹窗进行。
  4. 文件模块:

    • 在左侧的“文件”部分有一个“查看文件”按钮。
    • 点击左侧的“查看文件”按钮时,会在右侧显示所有文件的列表。
    • 列表中每个文件可以点击查看详情,包括下载和删除操作。
    • 右侧还会显示一个“上传文件”的按钮,方便随时上传新的文件。
    • 删除文件操作通过确认弹窗进行。
  5. 朋友圈模块:

    • 在左侧的“朋友圈”部分有一个“查看朋友圈”按钮。
    • 点击左侧的“查看朋友圈”按钮时,会在右侧显示所有朋友圈的列表。
    • 列表中每个朋友圈可以点击查看详情,包括点赞和删除操作。
    • 右侧还会显示一个“发布朋友圈”的按钮,方便随时发布新的朋友圈。
    • 删除朋友圈操作通过确认弹窗进行。
  6. 视频号模块:

    • 在左侧的“视频号”部分有一个“查看视频”按钮。
    • 点击左侧的“查看视频”按钮时,会在右侧显示所有视频的列表。
    • 列表中每个视频可以点击查看详情,包括点赞和删除操作。
    • 右侧还会显示一个“展示视频”的按钮,方便随时添加新的视频。
    • 删除视频操作通过确认弹窗进行。

2.完整代码

<!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 {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f5f5f5;
        }
        .container {
            width: 80%;
            max-width: 1200px;
            background: white;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            overflow: hidden;
            display: flex;
        }
        .sidebar {
            width: 25%;
            background: #e9ecef;
            padding: 20px;
            box-sizing: border-box;
        }
        .main-content {
            width: 75%;
            padding: 20px;
            box-sizing: border-box;
        }
        .search-area {
            margin-bottom: 20px;
        }
        .search-area input {
            width: calc(100% - 22px);
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            outline: none;
        }
        .friends-list, .favorites-list, .files-list, .moments-list, .videos-list {
            margin-top: 20px;
        }
        .item {
            padding: 10px;
            border-bottom: 1px solid #ddd;
            cursor: pointer;
        }
        .item:last-child {
            border-bottom: none;
        }
        .item:hover {
            background: #f1f1f1;
        }
        .video-item video {
            width: 100%;
            border-radius: 10px;
        }
        .disabled {
            opacity: 0.5;
            pointer-events: none;
        }
        .messages {
            max-height: 300px;
            overflow-y: auto;
            border-bottom: 1px solid #ddd;
            padding-bottom: 10px;
        }
        .message {
            margin-bottom: 10px;
        }
        .message.user {
            text-align: right;
        }
        .message.bot {
            text-align: left;
        }
        .input-area {
            display: flex;
            border-top: 1px solid #ddd;
        }
        .input-area input {
            flex-grow: 1;
            padding: 10px;
            border: none;
            outline: none;
        }
        .input-area button {
            padding: 10px;
            border: none;
            background: #07c160;
            color: white;
            cursor: pointer;
        }
        .input-area button:hover {
            background: #06a352;
        }
        .confirmation-message {
            margin-top: 20px;
            padding: 10px;
            background: #ffcccc;
            border: 1px solid #ff4d4d;
            border-radius: 5px;
        }
        .confirmation-message p {
            margin: 0;
        }
        .confirmation-buttons button {
            margin-right: 10px;
        }
        .friend-details img {
            width: 50px;
            height: 50px;
            border-radius: 50%;
            object-fit: cover;
            margin-right: 10px;
        }
        .form-group {
            margin-bottom: 15px;
        }
        .form-group label {
            display: block;
            margin-bottom: 5px;
        }
        .form-group input,
        .form-group select {
            width: 100%;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            outline: none;
        }
        .form-group button {
            padding: 10px 20px;
            border: none;
            background: #07c160;
            color: white;
            cursor: pointer;
            border-radius: 5px;
        }
        .form-group button:hover {
            background: #06a352;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="sidebar">
            <h3>搜索</h3>
            <div class="search-area">
                <input type="text" id="searchInput" placeholder="搜索...">
            </div>
            <h3>好友</h3>
            <div class="friends-list" id="friendsList">
                <div class="item" onclick="showFriends()">查看好友</div>
            </div>
            <h3>收藏</h3>
            <div class="favorites-list" id="favoritesList">
                <div class="item" onclick="showFavorites()">查看收藏</div>
            </div>
            <h3>文件</h3>
            <div class="files-list" id="filesList">
                <div class="item" onclick="showFiles()">查看文件</div>
            </div>
            <h3>朋友圈</h3>
            <div class="moments-list" id="momentsList">
                <div class="item" onclick="showMoments()">查看朋友圈</div>
            </div>
            <h3>视频号</h3>
            <div class="videos-list" id="videosList">
                <div class="item" onclick="showVideos()">查看视频</div>
            </div>
        </div>
        <div class="main-content">
            <h2 id="contentTitle">主界面</h2>
            <div id="contentArea"></div>
        </div>
    </div>

    <script>
        let friends = [];
        let favorites = [];
        let files = [];
        let moments = [];
        let videos = [];
        let confirmationCallback = null;

        function generateUniqueId() {
            return Math.random().toString(36).substr(2, 9);
        }

        function addFriendForm() {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>添加好友</h3>
                <form id="addFriendForm">
                    <div class="form-group">
                        <label for="friendNickname">网名:</label>
                        <input type="text" id="friendNickname" required>
                    </div>
                    <div class="form-group">
                        <label for="friendAge">年龄:</label>
                        <input type="number" id="friendAge" min="1" required>
                    </div>
                    <div class="form-group">
                        <label for="friendAvatar">头像URL:</label>
                        <input type="url" id="friendAvatar" required>
                    </div>
                    <button type="submit">添加好友</button>
                </form>
            `;
            document.getElementById('addFriendForm').onsubmit = (event) => {
                event.preventDefault();
                const nickname = document.getElementById('friendNickname').value;
                const age = parseInt(document.getElementById('friendAge').value);
                const avatar = document.getElementById('friendAvatar').value;
                const friendId = generateUniqueId();
                friends.push({ id: friendId, nickname, age, avatar, blocked: false });
                showMessage(`已添加好友 ${nickname}`);
                showFriends();
            };
        }

        function deleteFriend(index) {
            confirmationCallback = () => {
                friends.splice(index, 1);
                showFriends();
            };
            showConfirmation(`确定要删除 ${friends[index].nickname} 吗?`);
        }

        function blockFriend(index) {
            friends[index].blocked = !friends[index].blocked;
            showMessage(`已将 ${friends[index].nickname} ${friends[index].blocked ? '拉黑' : '取消拉黑'}`);
            showFriends();
        }

        function addToFavorites() {
            const favoriteContent = prompt("请输入要收藏的内容:");
            if (favoriteContent) {
                favorites.push({ content: favoriteContent, likes: 0 });
                showFavorites();
            }
        }

        function deleteFavorite(index) {
            confirmationCallback = () => {
                favorites.splice(index, 1);
                showFavorites();
            };
            showConfirmation(`确定要删除此收藏吗?`);
        }

        function likeFavorite(index) {
            favorites[index].likes++;
            showFavorites();
        }

        function uploadFile() {
            const fileInput = document.createElement('input');
            fileInput.type = 'file';
            fileInput.onchange = () => {
                const file = fileInput.files[0];
                if (file) {
                    files.push(file);
                    showMessage(`${file.name} 已上传`);
                    showFiles();
                }
            };
            fileInput.click();
        }

        function downloadFile(index) {
            const file = files[index];
            const url = URL.createObjectURL(file);
            const a = document.createElement('a');
            a.href = url;
            a.download = file.name;
            document.body.appendChild(a);
            a.click();
            a.remove();
        }

        function deleteFile(index) {
            confirmationCallback = () => {
                files.splice(index, 1);
                showFiles();
            };
            showConfirmation(`确定要删除此文件吗?`);
        }

        function postMoment() {
            const momentContent = prompt("请输入朋友圈内容:");
            if (momentContent) {
                moments.push({ content: momentContent, likes: 0 });
                showMoments();
            }
        }

        function deleteMoment(index) {
            confirmationCallback = () => {
                moments.splice(index, 1);
                showMoments();
            };
            showConfirmation(`确定要删除此朋友圈吗?`);
        }

        function likeMoment(index) {
            moments[index].likes++;
            showMoments();
        }

        function showVideo() {
            const videoUrl = prompt("请输入视频URL:");
            if (videoUrl) {
                videos.push({ url: videoUrl, likes: 0 });
                showVideos();
            }
        }

        function deleteVideo(index) {
            confirmationCallback = () => {
                videos.splice(index, 1);
                showVideos();
            };
            showConfirmation(`确定要删除此视频吗?`);
        }

        function likeVideo(index) {
            videos[index].likes++;
            showVideos();
        }

        function updateFriendsList() {
            const friendsList = document.getElementById('friendsList');
            friendsList.innerHTML = `
                <div class="item" οnclick="showFriends()">查看好友</div>
            `;
            if (friends.length > 0) {
                friends.forEach((friend, index) => {
                    const item = document.createElement('div');
                    item.className = 'item';
                    item.textContent = `${friend.nickname} (${friend.age}) ${friend.blocked ? '(已拉黑)' : ''}`;
                    item.onclick = () => showFriendDetails(index);
                    friendsList.appendChild(item);
                });
            }
        }

        function updateFavoritesList() {
            const favoritesList = document.getElementById('favoritesList');
            favoritesList.innerHTML = `
                <div class="item" οnclick="showFavorites()">查看收藏</div>
            `;
            if (favorites.length > 0) {
                favorites.forEach((favorite, index) => {
                    const item = document.createElement('div');
                    item.className = 'item';
                    item.textContent = `${favorite.content} (${favorite.likes} 点赞)`;
                    item.onclick = () => showFavoriteDetails(index);
                    favoritesList.appendChild(item);
                });
            }
        }

        function updateFilesList() {
            const filesList = document.getElementById('filesList');
            filesList.innerHTML = `
                <div class="item" οnclick="showFiles()">查看文件</div>
            `;
            if (files.length > 0) {
                files.forEach((file, index) => {
                    const item = document.createElement('div');
                    item.className = 'item';
                    item.textContent = `${file.name}`;
                    item.onclick = () => showFileDetails(index);
                    filesList.appendChild(item);
                });
            }
        }

        function updateMomentsList() {
            const momentsList = document.getElementById('momentsList');
            momentsList.innerHTML = `
                <div class="item" οnclick="showMoments()">查看朋友圈</div>
            `;
            if (moments.length > 0) {
                moments.forEach((moment, index) => {
                    const item = document.createElement('div');
                    item.className = 'item';
                    item.textContent = `${moment.content} (${moment.likes} 点赞)`;
                    item.onclick = () => showMomentDetails(index);
                    momentsList.appendChild(item);
                });
            }
        }

        function updateVideosList() {
            const videosList = document.getElementById('videosList');
            videosList.innerHTML = `
                <div class="item" οnclick="showVideos()">查看视频</div>
            `;
            if (videos.length > 0) {
                videos.forEach((video, index) => {
                    const item = document.createElement('div');
                    item.className = 'item';
                    item.innerHTML = `<video src="${video.url}" controls></video> (${video.likes} 点赞)`;
                    item.onclick = () => showVideoDetails(index);
                    videosList.appendChild(item);
                });
            }
        }

        function showFriends() {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>好友列表</h3>
                <button οnclick="addFriendForm()">添加好友</button>
                <div id="friendsContent"></div>
            `;
            const friendsContent = document.getElementById('friendsContent');
            friends.forEach((friend, index) => {
                const item = document.createElement('div');
                item.className = 'item';
                item.textContent = `${friend.nickname} (${friend.age}) ${friend.blocked ? '(已拉黑)' : ''}`;
                item.onclick = () => showFriendDetails(index);
                friendsContent.appendChild(item);
            });
        }

        function showFriendDetails(index) {
            const friend = friends[index];
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>${friend.nickname}</h3>
                <div class="friend-details">
                    <img src="${friend.avatar}" alt="${friend.nickname}'s Avatar">
                    <p>年龄: ${friend.age}</p>
                    <p>状态: ${friend.blocked ? '已拉黑' : '正常'}</p>
                    <button οnclick="chatWithFriend(${index})" ${friend.blocked ? 'class="disabled"' : ''}>聊天</button>
                    <button οnclick="deleteFriend(${index})">删除好友</button>
                    <button οnclick="blockFriend(${index})">${friend.blocked ? '取消拉黑' : '拉黑好友'}</button>
                </div>
            `;
        }

        function chatWithFriend(index) {
            const friend = friends[index];
            if (friend.blocked) {
                showMessage('无法与已拉黑的好友聊天');
                return;
            }
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>与 ${friend.nickname} 聊天</h3>
                <div class="messages" id="friendMessages"></div>
                <div class="input-area">
                    <input type="text" id="friendMessageInput" placeholder="输入消息...">
                    <button οnclick="sendFriendMessage(${index})">发送</button>
                </div>
            `;
        }

        function sendFriendMessage(index) {
            const friendMessageInput = document.getElementById('friendMessageInput');
            const friendMessagesContainer = document.getElementById('friendMessages');
            const userMessage = friendMessageInput.value.trim();

            if (userMessage === '') return;

            // 创建用户消息元素
            const userMessageElement = document.createElement('div');
            userMessageElement.className = 'message user';
            userMessageElement.textContent = userMessage;
            friendMessagesContainer.appendChild(userMessageElement);

            // 添加撤回按钮
            const revokeButton = document.createElement('button');
            revokeButton.textContent = '撤回';
            revokeButton.onclick = () => {
                friendMessagesContainer.removeChild(userMessageElement);
            };
            userMessageElement.appendChild(revokeButton);

            // 清空输入框
            friendMessageInput.value = '';

            // 模拟好友回复
            setTimeout(() => {
                const friendReply = `收到:${userMessage}`;
                const friendMessageElement = document.createElement('div');
                friendMessageElement.className = 'message bot';
                friendMessageElement.textContent = friendReply;
                friendMessagesContainer.appendChild(friendMessageElement);

                // 自动滚动到底部
                friendMessagesContainer.scrollTop = friendMessagesContainer.scrollHeight;
            }, 1000);
        }

        function showFavoriteDetails(index) {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>收藏内容</h3>
                <p>${favorites[index].content}</p>
                <p>点赞数: ${favorites[index].likes}</p>
                <button οnclick="likeFavorite(${index})">点赞</button>
                <button οnclick="deleteFavorite(${index})">删除收藏</button>
            `;
        }

        function showFileDetails(index) {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>文件详情</h3>
                <p>文件名: ${files[index].name}</p>
                <button οnclick="downloadFile(${index})">下载文件</button>
                <button οnclick="deleteFile(${index})">删除文件</button>
            `;
        }

        function showMomentDetails(index) {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>朋友圈内容</h3>
                <p>${moments[index].content}</p>
                <p>点赞数: ${moments[index].likes}</p>
                <button οnclick="likeMoment(${index})">点赞</button>
                <button οnclick="deleteMoment(${index})">删除朋友圈</button>
            `;
        }

        function showVideoDetails(index) {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>视频详情</h3>
                <video src="${videos[index].url}" controls></video>
                <p>点赞数: ${videos[index].likes}</p>
                <button οnclick="likeVideo(${index})">点赞</button>
                <button οnclick="deleteVideo(${index})">删除视频</button>
            `;
        }

        function showFavorites() {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>收藏内容列表</h3>
                <button οnclick="addToFavorites()">新增收藏内容</button>
                <div id="favoritesContent"></div>
            `;
            const favoritesContent = document.getElementById('favoritesContent');
            favorites.forEach((favorite, index) => {
                const item = document.createElement('div');
                item.className = 'item';
                item.textContent = `${favorite.content} (${favorite.likes} 点赞)`;
                item.onclick = () => showFavoriteDetails(index);
                favoritesContent.appendChild(item);
            });
        }

        function showFiles() {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>文件列表</h3>
                <button οnclick="uploadFile()">上传文件</button>
                <div id="filesContent"></div>
            `;
            const filesContent = document.getElementById('filesContent');
            files.forEach((file, index) => {
                const item = document.createElement('div');
                item.className = 'item';
                item.textContent = `${file.name}`;
                item.onclick = () => showFileDetails(index);
                filesContent.appendChild(item);
            });
        }

        function showMoments() {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>朋友圈列表</h3>
                <button οnclick="postMoment()">发布朋友圈</button>
                <div id="momentsContent"></div>
            `;
            const momentsContent = document.getElementById('momentsContent');
            moments.forEach((moment, index) => {
                const item = document.createElement('div');
                item.className = 'item';
                item.textContent = `${moment.content} (${moment.likes} 点赞)`;
                item.onclick = () => showMomentDetails(index);
                momentsContent.appendChild(item);
            });
        }

        function showVideos() {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML = `
                <h3>视频列表</h3>
                <button οnclick="showVideo()">展示视频</button>
                <div id="videosContent"></div>
            `;
            const videosContent = document.getElementById('videosContent');
            videos.forEach((video, index) => {
                const item = document.createElement('div');
                item.className = 'item';
                item.innerHTML = `<video src="${video.url}" controls></video> (${video.likes} 点赞)`;
                item.onclick = () => showVideoDetails(index);
                videosContent.appendChild(item);
            });
        }

        function showConfirmation(message) {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML += `
                <div class="confirmation-message" id="confirmationMessage">
                    <p>${message}</p>
                    <div class="confirmation-buttons">
                        <button οnclick="confirmAction()">确认</button>
                        <button οnclick="cancelAction()">取消</button>
                    </div>
                </div>
            `;
        }

        function confirmAction() {
            if (confirmationCallback) {
                confirmationCallback();
                confirmationCallback = null;
            }
            hideConfirmation();
        }

        function cancelAction() {
            confirmationCallback = null;
            hideConfirmation();
        }

        function hideConfirmation() {
            const confirmationMessage = document.getElementById('confirmationMessage');
            if (confirmationMessage) {
                confirmationMessage.remove();
            }
        }

        function showMessage(message) {
            const contentArea = document.getElementById('contentArea');
            contentArea.innerHTML += `
                <div class="confirmation-message" id="confirmationMessage">
                    <p>${message}</p>
                </div>
            `;
            setTimeout(hideConfirmation, 3000); // Hide after 3 seconds
        }

        // 初始化列表
        updateFriendsList();
        updateFavoritesList();
        updateFilesList();
        updateMomentsList();
        updateVideosList();
    </script>
</body>
</html>




3.效果演示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2258176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用的注解

RequestMapping 用于映射请求路径 可以添加在类或方法上 请求类型 请求类型包括GET、POST、PUT、DELETE等 默认支持GET和POST两种方式 简写&#xff1a;GetMapping、PostMapping、PutMapping、DeleteMapping PostMapping("/buy") 等价 RequestMapping("/buy&quo…

【操作系统】实验二:观察Linux,使用proc文件系统

实验二 观察Linux&#xff0c;使用proc文件系统 实验目的&#xff1a;学习Linux内核、进程、存储和其他资源的一些重要特征。读/proc/stat文件&#xff0c;计算并显示系统CPU占用率和用户态CPU占用率。&#xff08;编写一个程序使用/proc机制获得以及修改机器的各种资源参数。…

Mysql体系架构剖析——岁月云实战笔记

1 体系架构 理论内容阅读了mysql体系架构剖析&#xff0c;其他的根据岁月云的实战进行记录。 1.1 连接层 mysql最上层为连接服务&#xff0c;引入线程池&#xff0c;允许多台客户端连接&#xff0c;主要工作&#xff1a;连接处理、授权认证、安全防护、管理连接等。 连接处理&a…

算法基础Day7(动态规划)

文章目录 1.题目2.题目解答1.第N个泰波那契数题目及题目解析动态规划算法学习1.状态表示2.状态转移方程3.初始化4.填表顺序5.空间优化 代码提交空间优化 2.三步问题题目及题目解析算法学习代码提交 1.题目 1137. 第 N 个泰波那契数 - 力扣&#xff08;LeetCode&#xff09;面试…

Python基础笔记17--面向对象(其他)

一、面向对象的三大特性 1、封装 1、 将属性和⽅法书写到类的⾥⾯的操作 2、封装可以为属性和⽅法添加私有权限 2、继承 1、⼦类默认继承⽗类的所有属性和⽅法 2、⼦类可以重写⽗类属性和⽅法 3、多态 1、 传⼊不同的对象&#xff0c;产⽣不同的结果 二、多态 多态指⼀类事…

梳理你的思路(从OOP到架构设计)_基本OOP知识03

目录 1、<基类/子类 >结构的接口(卡榫函数) 1&#xff09;卡榫(Hook) 2&#xff09;卡榫函数的Java实现 2、IoC机制与基於 Default 軟硬整合觀點 函数 1&#xff09;卡榫函数实现IoC机制 2&#xff09;默认(Default)行为 1、<基类/子类 >结构的接口(卡榫函数…

Y3编辑器官方文档1:编辑器简介及菜单栏详解(文件、编辑、窗口、细节、调试)

文章目录 一、新建项目二、 编辑器主界面2.1 游戏场景2.2 导航栏/菜单栏2.3 功能栏三、菜单栏详细介绍3.1 文件3.1.1 版本管理3.1.2 项目管理(多关卡)3.1.2.1 多关卡功能说明3.1.2.2 关卡切换与关卡存档3.2 编辑3.2.1 通用设置3.2.2 键位设置3.3 窗口(日志)3.4 细节3.4.1 语言…

微信小程序横屏页面跳转后,自定义navbar样式跑了?

文章目录 问题原因&#xff1a;解决方案&#xff1a; 今天刚遇到的问题&#xff0c;横屏的页面完成操作后跳转页面后&#xff0c;自定义的tabbar样式乱了&#xff0c;跑到最顶了&#xff0c;真机调试后发现navbar跑到手机状态栏了&#xff0c;它正常应该跟右边胶囊一行。 知道问…

十五、K8s计划任务JobCronJob

K8s计划任务CronJob&Job 一、Job可以干什么 Job 控制器用于管理 Pod 对象运行一次性任务,比方说我们对数据库备份,可以直接在 k8s 上启动一个 mysqldump 备份程序,也可以启动一个 pod,这个 pod 专门用来备份用的,备份结束 pod 就可以终止了,不需要重启,而是将 Pod…

【开源】基于SpringBoot框架美容院管理系统(计算机毕业设计)+万字说明文档 T012

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可 操作系统…

基于卷积神经网络的垃圾分类系统实现(GUI应用)

1.摘要 本文主要实现了一个卷积神经网络模型进行垃圾图像分类&#xff0c;为了提高垃圾分类模型的准确率&#xff0c;使用使用Batch Normalization层、使用早期停止策略来防止过拟合等方法来优化模型&#xff0c;实验结果显示最终优化后的模型准确率较高90%左右。最终&#xf…

Qt Pro 常用配置

Part1: Summary Qt 开发中 Pro 文件的内容很多&#xff0c;需要不断的去学习和使用&#xff0c;现系统性的整理一下。以备录&#xff1b; 1.创建pro文件 1.1 步骤&#xff1a; Qt Creator--->New Project--->应用程序--->Qt Widgets Application--->名称为&…

软件测试--录制与回放脚本

准备工作 安装phpstudy 配置两个内容 放demo44文件夹 在浏览器输入http://localhost/demo44/index.html&#xff0c;出现如图所示的网站 输入用户名和密码 步骤一&#xff1a;打开Virtual User Generator&#xff0c;点击新建&#xff0c;点击new 步骤二&#xff1a;点击如下…

WEB安全基础知识

WAF全称为Web Application Firewall&#xff08;网页应用防火墙&#xff09;是一种专门设计用来保护web应用免受各种网络攻击的安全防护措施。它位于客户端与服务器之间&#xff0c;监控和过滤HTTP流量&#xff0c;从而拦截恶意请求、识别并防御常见的web攻击。 WAF的主要功能…

android studio kotlin 本地c++工程添加oboe库的方法

1.新建本地c++的kotlin工程hellohao 如图 2.把开源的oboe源文件src、include、CMakelists.txt、debug-utils复制hellohao目录下 3.修改hellohao\app目录下的CMakelists.txt cmake_minimum_required(VERSION 3.22.1) project(hellohao LANGUAGES C CXX)get_filename_component…

ElasticSearch常见的索引_集群的备份与恢复方案

方案一&#xff1a;使用Elasticsearch的快照和恢复功能进行备份和恢复。该方案适用于集群整体备份与迁移&#xff0c;包括全量、增量备份和恢复。 方案二&#xff1a;通过reindex操作在集群内或跨集群同步数据。该方案适用于相同集群但不同索引层面的迁移&#xff0c;或者跨集…

cefsharp131.2.70升级cefsharp131.3.10( Chromium 131.0.6778.109)NETCore 版本升级体验

一、版本 cefsharp 131.3.10 小版本升级:cefsharp 131.2.70>>cef 131.3.10 CEF 131.3.1+gcb062df+chromium-131.0.6778.109 / Chromium 131.0.6778.109 二、测试(html5test)

#自定义数据类型-模拟进程执行

#include <iostream> #include <string> #include <iomanip> using namespace std;//定义一个名为process的结构体&#xff0c;用于表示进程相关信息 //包含进程名、进程ID、进程优先级、进程状态、进程所需CPU时间、进程描述等成员 struct process {string …

多线程的知识总结(8):用 thread 类 或全局 async (...) 函数,创建新线程时,谁才是在新线程里第一个被执行的函数

&#xff08;40&#xff09;用 thread 类 或全局 async (…) 函数&#xff0c;创建新线程时&#xff0c;谁才是在新线程里第一个被执行的函数&#xff1f; 弄清楚这个问题&#xff0c;有利于推测和理解线程中代码的执行流程。根据 thread 类 和 async &#xff08;…&#xff0…

12月11日IO进程线程

作业1、创建子父进程&#xff0c;子进程将1.txt内容拷贝到2.txt中&#xff0c;父进程将3.txt内容拷贝到4.txt中。 #include <myhead.h>int main(int argc, const char *argv[]) {//创建子父进程pid_t pidfork();if(pid>0) //父进程{//打开文件1文件2int fd1open(&q…