当前位置: 首页 > news >正文

音乐播放器实现:前端HTML,CSS,JavaScript综合大项目

音乐播放器实现:前端HTML,CSS,JavaScript综合大项目

  • 项目概述
  • 项目视图效果
  • 一、侧边栏相关代码
    • (一)HTML代码
    • (二)css代码
  • 二、登录页面
    • (一)HTML代码
    • (二)css代码
    • (三)js代码
  • 三、剩余代码以及所有源代码Gitee地址


项目概述

在当今数字化时代,音乐已然成为人们生活中不可或缺的一部分。本次带来的音乐播放器 HTML 项目,旨在打造一个具备基础且实用功能的音乐播放平台。通过 HTML、CSS 和 JavaScript 等前端技术的巧妙融合,实现一个界面美观、操作便捷的音乐播放器,满足用户在本地浏览音乐库、播放音乐等多样化需求

提示!!!!

由于项目代码太多,代码全部内容放置在我的Gitee码云中,需要的小伙伴们自取
我的码云链接https://gitee.com/srte-7719/project-experience/tree/master/HTML%E9%A1%B9%E7%9B%AE
由于项目代码太多,代码全部内容放置在我的Gitee码云中,需要的小伙伴们自取
我的码云链接https://gitee.com/srte-7719/project-experience/tree/master/HTML%E9%A1%B9%E7%9B%AE
由于项目代码太多,代码全部内容放置在我的Gitee码云中,需要的小伙伴们自取
我的码云链接https://gitee.com/srte-7719/project-experience/tree/master/HTML%E9%A1%B9%E7%9B%AE

项目视图效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


下面列出一些我的项目代码
下面列出一些我的项目代码

一、侧边栏相关代码

(一)HTML代码

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>我的音乐</title><link rel="stylesheet" href="侧边栏.css">
</head><body><!-- 顶部导航栏 --><nav class="top-nav tech-style"><div class="logo"><span class="logo-text"></span></div><ul><li><a href="#">赞助商</a></li><li><a href="#">BUG反馈</a></li><li><a href="#">联系我们</a></li></ul></nav>
<!-- 侧边栏导航栏 -->
<div class="shell"><ul class="nav"><li class="activeonly" id="logo"><a href="../html.css.java部分/音乐主页.html"><div class="text">目录</div></a></li><li><a href="../html.css.java部分/音乐主页.html"><div class="icon"><i class="iconfont icon-cangku"></i></div><div class="text">播放器主页</div></a></li><li><a href="../html.css.java部分/音乐库.html"><div class="icon"><i class="iconfont icon-cangku"></i></div><div class="text">音乐库</div></a></li><li><a href="../html.css.java部分/分类音乐类型.html"><div class="icon"><i class="iconfont icon-cangku"></i></div><div class="text">音乐分类</div></a></li><li><a href="../html.css.java部分/歌手分类.html"><div class="icon"><i class="iconfont icon-zhuti_tiaosepan"></i></div><div class="text">歌手分类</div></a></li><li><a href="../html.css.java部分/我的主页.html"><div class="icon"><i class="iconfont icon-dunpaibaoxianrenzheng"></i></div><div class="text">我的主页</div></a></li><li><a href="../html.css.java部分/我的收藏.html"><div class="icon"><i class="iconfont icon-dunpaibaoxianrenzheng"></i></div><div class="text">我的收藏</div></a></li><li><a href="./我的主页.html"><div class="icon"><i class="iconfont icon-cangku"></i></div><div class="text">系统设置</div></a></li><li><a href="./成为创作者.html"><div class="icon"><i class="iconfont icon-dunpaibaoxianrenzheng"></i></div><div class="text">成为创作者</div></a></li><li><a href="./vip区域.html"><div class="icon"><i class="iconfont icon-dunpaibaoxianrenzheng"></i></div><div class="text">超级会员VIP</div></a></li></ul>
</div><script>// 1. 获取所有类名为.nav下的 <li> 元素let nav = document.querySelectorAll(".nav li");function activeLink() {nav.forEach((item) => item.classList.remove("active"));this.classList.add("active");// 4. 隐藏所有非 "directory-content" 的 <section> 元素document.querySelectorAll('section[id!="directory-content"]').forEach((section) => {section.style.display = 'none';});// 5. 判断当前点击的 <li> 元素 idif (this.id === 'logo') {// 如果是 'logo',显示 "directory-content" 元素document.getElementById('directory-content').style.display = 'block';} else {// 否则,显示和当前点击 <li> 元素 id 对应的元素document.getElementById(this.id).style.display = 'block';}}
</script>
</body></html>

(二)css代码

/* 全局样式重置,去除默认边距、内边距,设置盒模型及去掉列表和链接默认样式 */
* {margin: 0;padding: 0;box-sizing: border-box;list-style: none;text-decoration: none;
}/* 页面主体样式,设置背景及顶部预留空间 */
body {background: rgba(228, 233, 245, 0);padding-top: 60px;
}/* 科技感顶部导航栏整体样式,包含背景、颜色、布局、定位等 */
nav.top-nav.tech-style {background-color: #000;color: #ccc;display: flex;justify-content: space-between;align-items: center;padding: 15px 30px;position: fixed;top: 0;left: 0;width: 100%;z-index: 9998;
}/* 导航栏渐变背景伪元素,增加层次感 */
nav.top-nav.tech-style:before {content: "";position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(to right, #000000, #000000);opacity: 0.2;z-index: 0;
}/* 导航栏logo样式,设置对齐和字体 */
nav.top-nav.tech-style.logo {display: flex;align-items: center;font-size: 22px;font-weight: bold;
}/* 导航栏列表样式,去除默认样式并设为弹性布局 */
nav.top-nav.tech-style ul {list-style-type: none;display: flex;
}/* 导航栏列表项样式,设置左边距间隔 */
nav.top-nav.tech-style ul li {margin-left: 25px;
}/* 导航栏链接样式,设置颜色、内边距、过渡效果等 */
nav.top-nav.tech-style ul li a {color: #ccc;text-decoration: none;padding: 6px 12px;border-radius: 5px;transition: color 0.3s ease, background-color 0.3s ease;position: relative;
}/* 导航栏链接底部横线伪元素,初始宽度为0,用于悬停效果 */
nav.top-nav.tech-style ul li a:before {content: "";position: absolute;bottom: 0;left: 0;width: 0;height: 2px;background-color: #00f2ff;transition: width 0.3s ease;
}/* 导航栏链接悬停时文字变色 */
nav.top-nav.tech-style ul li a:hover {color: #00f2ff;
}/* 导航栏链接悬停时底部横线展开 */
nav.top-nav.tech-style ul li a:hover:before {width: 100%;
}/* 侧边栏整体样式,固定定位、设置宽度、背景等及过渡效果 */
.shell {position: fixed;width: 40px;height: 100%;background: #000000;z-index: 9999;transition: width 0.5s;padding-left: 3px;overflow: hidden;margin-top: -10px;
}/* 侧边栏悬停变宽 */
.shell:hover {width: 150px;
}/* 侧边栏列表样式,相对定位及设置高度 */
.shell ul {position: relative;height: 100vh;
}/* 侧边栏列表项样式,相对定位及内边距 */
.shell ul li {position: relative;padding: 3px;
}/* 侧边栏激活项样式,设置背景和圆角 */
.activeonly {background: #e4e9f5;border-top-left-radius: 30px;border-bottom-left-radius: 30px;
}/* 侧边栏激活项右上角伪元素,用于视觉效果 */
.activeonly::before {content: "";position: absolute;top: -20px;right: 0;width: 20px;height: 20px;border-bottom-right-radius: 15px;box-shadow: 3px 3px 0 3px #e4e9f5;background: transparent;
}/* 侧边栏激活项右下角伪元素,用于视觉效果 */
.activeonly::after {content: "";position: absolute;bottom: -20px;right: 0;width: 20px;height: 20px;border-top-right-radius: 15px;box-shadow: 3px -3px 0 3px #e4e9f5;background: transparent;
}/* 侧边栏中id为logo元素的样式,设置外边距 */
#logo {margin: 30px 0 70px 0;
}/* 侧边栏列表项链接整体样式,相对定位及布局设置 */
.shell ul li a {position: relative;display: flex;white-space: nowrap;
}/* 侧边栏图标样式,设置尺寸、颜色、对齐等 */
.icon {min-width: 30px;padding-left: 3px;height: 35px;color: #fff;display: flex;justify-content: center;align-items: center;transition: 0.5s;
}/* 图标内字体图标大小 */
.icon i {font-size: 15px;
}/* 侧边栏文字样式,设置尺寸、颜色、对齐等 */
.text {height: 35px;display: flex;align-items: center;font-size: 12px;color: #ffad32c1;padding-left: 8px;text-transform: uppercase;letter-spacing: 1.5px;transition: 0.5s;
}/* 侧边栏列表项悬停时图标和文字变色 */
.shell ul li:hover a.icon,
.shell ul li:hover a.text {color: #ffa117;
}/* 侧边栏激活项图标伪元素,用于装饰效果 */
.activeonly a.icon::before {content: "";position: absolute;inset: 3px;width: 40px;background: #000000;border-radius: 50%;transition: 0.5s;border: 5px solid #ffa117;box-sizing: border-box;
}
  • 效果图

在这里插入图片描述

二、登录页面

(一)HTML代码

<!DOCTYPE html>
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"><title>注册登录界面</title><link rel="stylesheet" href="注册登录页面.css">
</head><body><div class="container"><div class="form-box"><!-- 注册 --><div class="register-box hidden"><h1>注册</h1><input type="text" placeholder="用户名" id="register-username"><input type="email" placeholder="邮箱" id="register-email"><input type="password" placeholder="密码" id="register-password"><input type="password" placeholder="确认密码" id="register-password-confirm"><button onclick="registerSubmit()">注册</button></div><!-- 登录 --><div class="login-box"><h1>登录</h1><input type="text" placeholder="用户名" id="login-username"><input type="password" placeholder="密码" id="login-password"><button onclick="loginSubmit()">登录</button></div></div><div class="con-box left"><h2>欢迎来到<span>我的音乐</span></h2><img src="图片/OIP-C.jpg" alt=""><p>已有账号</p><button id="login">去登录</button></div><div class="con-box right"><h2>欢迎来到<span>我的音乐</span></h2><img src="图片/01c2445861085ea8012060c8b394f2.jpg" alt=""><p>没有账号?</p><button id="register">去注册</button></div></div><script src="注册登录页面.js"></script>
</body></html>

(二)css代码

* {/* 初始化 */margin: 0;padding: 0;
}body {/* 100%窗口高度 */height: 100vh;/* 弹性布局 水平+垂直居中 */display: flex;justify-content: center;align-items: center;/* 渐变背景 */background: linear-gradient(200deg, #328bff, #00ffd0);
}.container {background-color: #fff;width: 650px;height: 415px;border-radius: 5px;/* 阴影 */box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1);/* 相对定位 */position: relative;
}.form-box {/* 绝对定位 */position: absolute;top: -10%;left: 5%;background-color: #d3b7d8;width: 320px;height: 500px;border-radius: 5px;box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);display: flex;justify-content: center;align-items: center;z-index: 2;/* 动画过渡 加速后减速 */transition: 0.5s ease-in-out;
}.register-box,
.login-box {/* 弹性布局 垂直排列 */display: flex;flex-direction: column;align-items: center;width: 100%;
}.hidden {display: none;transition: 0.5s;
}h1 {text-align: center;margin-bottom: 25px;/* 大写 */text-transform: uppercase;color: #fff;/* 字间距 */letter-spacing: 5px;
}input {background-color: transparent;width: 70%;color: #fff;border: none;/* 下边框样式 */border-bottom: 1px solid rgba(255, 255, 255, 0.4);padding: 10px 0;text-indent: 10px;margin: 8px 0;font-size: 14px;letter-spacing: 2px;
}input::placeholder {color: #fff;
}input:focus {color: #6e62ad;outline: none;border-bottom: 1px solid #6295ad;transition: 0.5s;
}input:focus::placeholder {opacity: 0;
}.form-box button {width: 70%;margin-top: 35px;background-color: #f6f6f6;outline: none;border-radius: 8px;padding: 13px;color: #62ad77;letter-spacing: 2px;border: none;cursor: pointer;
}.form-box button:hover {background-color: #626dad;color: #f6f6f6;transition: background-color 0.5s ease;
}/* 新增的加载动画样式 */
.login-box.loading-animation {animation: loading 1s ease-in-out;
}@keyframes loading {0% {opacity: 1;}50% {opacity: 0.5;}100% {opacity: 1;}
}.con-box {width: 50%;/* 弹性布局 垂直排列 居中 */display: flex;flex-direction: column;justify-content: center;align-items: center;/* 绝对定位 居中 */position: absolute;top: 50%;transform: translateY(-50%);
}.con-box.left {left: -2%;
}.con-box.right {right: -2%;
}.con-box h2 {color: #8e9aaf;font-size: 25px;font-weight: bold;letter-spacing: 3px;text-align: center;margin-bottom: 4px;
}.con-box p {font-size: 12px;letter-spacing: 2px;color: #8e9aaf;text-align: center;
}.con-box span {color: #427eff;
}.con-box img {width: 150px;height: 150px;opacity: 0.9;margin: 40px 0;
}.con-box button {margin-top: 3%;background-color: #fff;color: #a262ad;border: 1px solid #d3b7d8;padding: 6px 10px;border-radius: 5px;letter-spacing: 1px;outline: none;cursor: pointer;
}.con-box button:hover {background-color: #b7c2d8;color: #ffffff;
}

(三)js代码

// 获取相关DOM元素
let login = document.getElementById('login');
let register = document.getElementById('register');
let form_box = document.getElementsByClassName('form-box')[0];
let register_box = document.getElementsByClassName('register-box')[0];
let login_box = document.getElementsByClassName('login-box')[0];
let loginUsername = document.getElementById('login-username');
let loginPassword = document.getElementById('login-password');
let registerUsername = document.getElementById('register-username');
let registerEmail = document.getElementById('register-email');
let registerPassword = document.getElementById('register-password');
let registerPasswordConfirm = document.getElementById('register-password-confirm');// 模拟用户数据存储(简单示例,实际应用中可替换为更合适的存储方式,如localStorage、发送到后端等)
// 这里不再使用这个简单的数组存储,而是使用localStorage// 去注册按钮点击事件
register.addEventListener('click', () => {form_box.style.transform = 'translateX(80%)';login_box.classList.add('hidden');register_box.classList.remove('hidden');
});// 去登录按钮点击事件
login.addEventListener('click', () => {form_box.style.transform = 'translateX(0%)';register_box.classList.add('hidden');login_box.classList.remove('hidden');
});function loginSubmit() {const inputUsername = loginUsername.value;const inputPassword = loginPassword.value;// 从localStorage获取存储的用户信息const storedUsers = JSON.parse(localStorage.getItem('users')) || [];const user = storedUsers.find(u => u.username === inputUsername && u.password === inputPassword);if (user) {// 给登录按钮所在的父容器添加加载动画类document.querySelector('.login-box').classList.add('loading-animation');// 等待动画结束(这里简单设置一个定时器模拟动画时长,实际中可以根据动画的真实时长来调整)setTimeout(() => {window.location.href = '音乐主页.html';}, 500); // 假设动画时长为1秒,可根据实际调整} else {alert("用户名或密码错误,请重新输入");}
}function registerSubmit() {const username = registerUsername.value;const email = registerEmail.value;const password = registerPassword.value;const passwordConfirm = registerPasswordConfirm.value;if (password === passwordConfirm) {// 从localStorage获取已存储的用户信息列表,若不存在则初始化为空数组const storedUsers = JSON.parse(localStorage.getItem('users')) || [];// 创建新用户对象const newUser = {username: username,email: email,password: password};// 将新用户添加到用户列表storedUsers.push(newUser);// 将更新后的用户列表存储回localStoragelocalStorage.setItem('users', JSON.stringify(storedUsers));alert("注册完成");// 跳转到登录页面form_box.style.transform = 'translateX(0%)';register_box.classList.add('hidden');login_box.classList.remove('hidden');} else {alert("两次输入的密码不一致,请重新输入");}
}
由于代码太多剩余的代码我将放到我的Gitee地址,需要的小伙伴们自取
由于代码太多剩余的代码我将放到我的Gitee地址,需要的小伙伴们自取
由于代码太多剩余的代码我将放到我的Gitee地址,需要的小伙伴们自取

由于项目代码量较多,本文仅展示了侧边栏和登录页面的相关代码。剩余部分包括音乐播放器的核心功能实现,如音乐的播放、暂停、切换、进度控制等功能的代码,以及音乐库展示、音乐分类筛选等相关代码。所有源代码已上传至 Gitee 仓库,感兴趣的小伙伴可以前往获取,进行学习和进一步的开发优化。希望这个项目能为大家在前端开发学习和实践中提供一些帮助和启发
在这里插入图片描述
在这里插入图片描述

三、剩余代码以及所有源代码Gitee地址

我的码云链接https://gitee.com/srte-7719/project-experience/tree/master/HTML%E9%A1%B9%E7%9B%AE

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述


相关文章:

音乐播放器实现:前端HTML,CSS,JavaScript综合大项目

音乐播放器实现:前端HTML&#xff0c;CSS&#xff0c;JavaScript综合大项目 项目概述项目视图效果一、侧边栏相关代码&#xff08;一&#xff09;HTML代码&#xff08;二&#xff09;css代码 二、登录页面&#xff08;一&#xff09;HTML代码&#xff08;二&#xff09;css代码…...

Unity编辑器缩放设置

Unity默认界面UI字体太小了&#xff0c;可以设置一下缩放 打开首选项&#xff0c; UI Scaling 设置成125%或者更大 &#xff0c;然后重启...

ChatGPT大模型极简应用开发-CH1-初识 GPT-4 和 ChatGPT

文章目录 1.1 LLM 概述1.1.1 语言模型和NLP基础1.1.2 Transformer及在LLM中的作用1.1.3 解密 GPT 模型的标记化和预测步骤 1.2 GPT 模型简史&#xff1a;从 GPT-1 到 GPT-41.2.1 GPT11.2.2 GPT21.2.3 GPT-31.2.4 从 GPT-3 到 InstructGPT1.2.5 GPT-3.5、Codex 和 ChatGPT1.2.6 …...

Golang学习笔记_27——单例模式

Golang学习笔记_24——泛型 Golang学习笔记_25——协程Golang学习笔记_25——协程 Golang学习笔记_26——通道 文章目录 单例模式1. 介绍2. 应用场景3. 实现3.1 饿汉式3.2 懒汉模式 源码 单例模式 1. 介绍 单例模式是一种创建型设计模式&#xff0c;它确保一个类只有一个实例…...

хорошо哈拉少wordpress俄语主题

хорошо哈拉少wordpress俄语主题 wordpress俄文网站模板&#xff0c;推荐做俄罗斯市场的外贸公司建俄语独立站使用。 演示 https://www.jianzhanpress.com/?p7360...

[数据结构与算法]js实现二叉树

DFS 与 BFS dfs 递归 本质通过栈结构 bfs 层序遍历 通过队列结构 function permute(nums) {let res [];let cur []; // 记录当前内容let visted {}; //记录访问过的节点let len nums.length;function dfs(nth) {//递归终止条件if (nth len) {res.push([...cur]);return …...

MySQL程序之:连接到服务器的命令选项

本节介绍大多数MySQL客户端程序支持的选项&#xff0c;这些选项控制客户端程序如何建立与服务器的连接、连接是否加密以及连接是否压缩。这些选项可以在命令行或选项文件中给出。 连接建立的命令选项 本节介绍控制客户端程序如何建立与服务器的连接的选项。 表6.4连接建立选…...

python3GUI--仿崩坏三二次元登录页面(附下载地址) By:PyQt5

文章目录 一&#xff0e;前言二&#xff0e;预览三&#xff0e;实现方案1.实现原理1.PyQt52. 具体实现 2.UI设计1.UI组件化、模块化2.UI设计风格思路 3.项目代码结构4.使用方法3.代码分享1.支持跳转网页的QLabel组件2.三角形ICON按钮 四&#xff0e;总结 大小&#xff1a;33.3 …...

阿里云 Serverless 助力盟主直播:高并发下的稳定性和成本优化

在直播场景中&#xff0c;阿里云 Serverless 应用引擎 SAE 提供的无缝弹性伸缩与极速部署能力&#xff0c;确保直播间高并发时的流畅体验&#xff0c;降低了我们的运营成本&#xff0c;简化了运维流程。结合阿里云云原生数据库 PolarDB 的 Serverless 能力&#xff0c;实现了数…...

Unity 学习指南与资料分享

Unity学习资料 Unity学习资料 Unity学习资料 Unity 作为一款强大的跨平台游戏开发引擎&#xff0c;在游戏开发及实时 3D 内容创作领域占据着重要地位。它功能丰富、易于上手&#xff0c;支持多平台发布&#xff0c;为开发者提供了广阔的创作空间。下面为你带来全面的 Unity 学…...

Android SystemUI——CarSystemBar视图解析(十一)

前面文章我们已经把 CarSystemBar 从启动到构建视图,再到将视图添加到 Window 的流程分析完毕,我们知道默认情况下在车载系统中只显示顶部栏和底部栏视图的。这里我们在前面文章的基础上以顶部栏为例具体解析其视图的结构。 一、顶部栏解析 通过《CarSystemBar车载状态栏》这…...

.NET周刊【1月第1期 2025-01-05】

国内文章 3款.NET开源、功能强大的通讯调试工具&#xff0c;效率提升利器&#xff01; https://www.cnblogs.com/Can-daydayup/p/18631410 本文介绍了三款功能强大的.NET开源通讯调试工具&#xff0c;旨在提高调试效率。这些工具包括LLCOM&#xff0c;提供串口调试和自动化处…...

初识go语言之指针用法

一、环境准备 安装go语言编译环境&#xff0c;官网地址&#xff1a;https://go.dev/dl/ 或者 https://golang.google.cn/dl/ 点击下载按提示安装即可 vscode 安装go语言扩展 测试 package mainimport "fmt"func main() {fmt.Println("Hello, World!") …...

用户中心项目教程(二)---umi3的使用出现的错误

目录 1.情况的说明 2.遇到的问题 1&#xff09;第一个问题-关于npx的使用 2&#xff09;第二个问题--unsupport问题 3&#xff09;第三个收获--nodejs安装问题 4&#xff09;第四个收获---nvm下载问题 5&#xff09;第五个问题--尚未解决的问题 3.个人总结 1.情况的说明…...

Android设备:Linux远程gdb调试

更多内容&#xff1a;XiaoJ的知识星球 目录 1.准备工作1&#xff09;安装Android NDK&#xff1a;2&#xff09;连接Android手机3&#xff09;编译程序 2.启动gdbserver1&#xff09;**推送gdbserver及可执行文件**&#xff1a;**2&#xff09;启动gdbserver**&#xff1a;3&am…...

(十四)WebGL纹理坐标初识

纹理坐标是 WebGL 中将 2D 图像&#xff08;纹理&#xff09;应用到 3D 物体表面的重要概念。在 WebGL 中&#xff0c;纹理坐标通常使用一个二维坐标系&#xff0c;称为 uv 坐标&#xff0c;它们决定了纹理图像如何映射到几何体上。理解纹理坐标的核心就是明白它们如何将二维纹…...

【机器学习】制造业转型:机器学习如何推动工业 4.0 的深度发展

我的个人主页 我的领域&#xff1a;人工智能篇&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;&#x1f44d;点赞 收藏❤ 引言 在当今科技飞速发展的时代&#xff0c;制造业正经历着前所未有的变革&#xff0c;工业4.0的浪潮席卷而来。工业4.0旨在通过将…...

Nginx安装配置Mac使用Nginx访问前端打包项目

目录 Linux安装环境变量配置 WinMac安装基本配置 Mac使用Nginx访问前端项目常用命令 Linux 官网&#xff1a;https://nginx.org/ 中文官网&#xff1a;https://nginx.p2hp.com/ 安装 http://nginx.org/en/download.html 1). 安装依赖包 由于nginx是基于c语言开发的&#x…...

国自然面上项目|基于组合机器学习算法的病理性近视眼底多模态影像资料自动化定量分析研究|基金申请·25-01-18

小罗碎碎念 今天和大家分享一个面上项目&#xff0c;资助年限为2020&#xff5e;2023&#xff0c;直接费用为55万。 病理性近视致盲问题严峻&#xff0c;机制和诊疗策略尚待探索。本项目基于前期积累的大量影像资料和算法开发工作&#xff0c;计划构建标准影像数据库&#xff0…...

03_UI自适应

因为Canvas大小是始终和屏幕一致的 所以设置Canvas的屏幕大小 通常设置为1920 * 1080 又因为屏幕的图像及按钮如果想适配各种显示屏需要锁定长或者宽&#xff0c; 之后利用钉子将其他图像利用创建空节点定在左右或者上下两侧 比如unity编辑器通常是锁定宽的&#xff0c;那我…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...