之前) ========== */ /* ========== 移动端底部导航栏 ========== */ .mobile-nav { display: none; position: fixed; bottom: 0; left: 0; width: 100%; height: 58px; background: #fff; box-shadow: 0 -2px 12px rgba(6, 108, 207, 0.12); z-index: 96; } .mn-item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--text-secondary); font-size: 0.72rem; cursor: pointer; transition: color 0.2s; } .mn-item i { font-size: 1.3rem; } .mn-item.active { color: var(--primary-deep); } /* ========== 全屏播放器 ========== */ .fs-player { position: fixed; inset: 0; z-index: 1200; display: none; overflow: hidden; flex-direction: column; padding: 40px; background: linear-gradient(135deg, rgba(56, 160, 224, 0.94), rgba(15, 92, 170, 0.96)); backdrop-filter: blur(34px) saturate(140%); -webkit-backdrop-filter: blur(34px) saturate(140%); color: #fff; animation: fsFadeIn 0.42s cubic-bezier(0.22, 0.61, 0.36, 1); } @keyframes fsFadeIn { from { opacity: 0; transform: scale(1.05); } to { opacity: 1; transform: scale(1); } } @keyframes fsFadeOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(1.05); } } .fs-player.fs-closing { animation: fsFadeOut 0.3s cubic-bezier(0.22, 0.61, 0.36, 1) forwards; } .fs-close { position: absolute; top: 18px; left: 18px; background: none; border: none; color: #fff; font-size: 1.6rem; cursor: pointer; opacity: 0.85; } .fs-close:hover { opacity: 1; } .fs-content { flex: 1; display: flex; align-items: center; justify-content: center; gap: 72px; min-height: 0; padding: 0 24px; } .fs-disc-wrap { width: 300px; height: 300px; flex-shrink: 0; } .fs-disc { width: 100%; height: 100%; border-radius: 50%; background: radial-gradient(circle at center, #1a1a1a 0%, #1a1a1a 28%, #3a3a3a 29%, #111 31%, #333 65%, #0a0a0a 66%, #222 100%); display: flex; align-items: center; justify-content: center; font-size: 6rem; color: #3aa8f0; box-shadow: 0 0 50px rgba(0, 0, 0, 0.55); } .fs-disc.spinning { animation: fs-spin 8s linear infinite; } @keyframes fs-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .fs-right { flex: 1; max-width: 500px; min-width: 0; } .fs-lyric { font-size: 2rem; font-weight: 700; line-height: 1.35; margin-bottom: 12px; word-break: break-word; } .fs-artist { font-size: 1.1rem; opacity: 0.85; margin-bottom: 32px; } .fs-controls { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 26px; } .fs-btn { width: 58px; height: 58px; border-radius: 50%; border: none; background: rgba(255, 255, 255, 0.16); color: #fff; font-size: 1.3rem; cursor: pointer; transition: background-color 0.2s, transform 0.2s; display: flex; align-items: center; justify-content: center; } .fs-btn:hover { background: rgba(255, 255, 255, 0.3); transform: scale(1.05); } .fs-play { width: 72px; height: 72px; background: #fff; color: var(--primary-deep); font-size: 1.8rem; } .fs-list-panel { position: absolute; top: 0; right: 0; bottom: 0; width: 30%; max-width: 360px; min-width: 260px; background: rgba(8, 14, 22, 0.92); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); display: flex; flex-direction: column; padding: 64px 18px 18px; box-shadow: -6px 0 20px rgba(0, 0, 0, 0.3); transform: translateX(100%); opacity: 0; visibility: hidden; pointer-events: none; transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.32s; } .fs-list-panel.show { transform: translateX(0); opacity: 1; visibility: visible; pointer-events: auto; } .fs-list-title { display: flex; align-items: center; justify-content: space-between; font-size: 1.05rem; margin-bottom: 14px; padding-left: 6px; font-weight: 600; } .fs-list-close { background: none; border: none; color: #fff; font-size: 1.2rem; cursor: pointer; opacity: 0.8; width: 32px; height: 32px; border-radius: 50%; } .fs-list-close:hover { opacity: 1; background: rgba(255, 255, 255, 0.15); } .fs-list { flex: 1; min-height: 0; overflow-y: auto; padding-right: 4px; } .fs-list-item { display: flex; align-items: center; gap: 10px; padding: 12px 10px; border-radius: 10px; cursor: pointer; transition: background-color 0.2s; } .fs-list-item:hover { background: rgba(255, 255, 255, 0.1); } .fs-list-item.active { background: rgba(6, 108, 207, 0.45); } .fs-li-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .fs-li-del { background: none; border: none; color: #ff9a9a; cursor: pointer; font-size: 1rem; flex-shrink: 0; } .fs-list-empty { text-align: center; opacity: 0.7; padding: 30px 10px; } .fs-progress-bar { height: 6px; background: rgba(255, 255, 255, 0.25); border-radius: 3px; cursor: pointer; margin-top: 22px; flex-shrink: 0; } .fs-progress { height: 100%; width: 0; background: #fff; border-radius: 3px; } .fs-time { display: flex; justify-content: space-between; margin-top: 8px; font-size: 0.9rem; opacity: 0.85; flex-shrink: 0; transition: opacity 0.3s; } .fs-player.fs-list-open .fs-time { opacity: 0; pointer-events: none; } /* ========== 深色主题 ========== */ body.theme-dark { --background-color: #0e1116; --card-color: #18222e; --text-primary: #e9f2fc; --text-secondary: #9fb6cc; --highlight-color: #4ab3ef; --shadow: 0 4px 14px rgba(0, 0, 0, 0.45); } body.theme-dark { background-color: var(--background-color); background-image: none; color: var(--text-primary); } /* 深色模式滚动条 */ body.theme-dark { scrollbar-color: #2a3a4a #0e1116; } body.theme-dark ::-webkit-scrollbar-track { background: #0e1116; } body.theme-dark ::-webkit-scrollbar-thumb { background: #2a3a4a; border-color: #0e1116; } body.theme-dark ::-webkit-scrollbar-thumb:hover { background: #3a4f63; } body.theme-dark .app-sidebar, body.theme-dark .player-section, body.theme-dark .mobile-nav, body.theme-dark .search-section, body.theme-dark .music-list-section, body.theme-dark .playlist-section, body.theme-dark .stat-card, body.theme-dark .modal-box, body.theme-dark .fullscreen-player, body.theme-dark .music-list-section.list-fullscreen { background-color: var(--card-color); } body.theme-dark .playlist-card { background-color: #16202b; border-color: #243140; } body.theme-dark .playlist-card:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4); } body.theme-dark .app-sidebar { background-color: #14202c; } body.theme-dark .player-section { background: rgba(18, 30, 42, 0.66); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%); border-top: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 -6px 28px rgba(0, 0, 0, 0.4); } body.theme-dark .mobile-nav { background-color: #14202c; border-top: 1px solid #243140; } body.theme-dark .music-item { background: linear-gradient(135deg, #1b2733 0%, #16202b 100%); } body.theme-dark .music-item.playing { background: linear-gradient(135deg, #22364a 0%, #1a2c3d 100%); border-left: 4px solid var(--primary-color); } body.theme-dark .music-title { color: #cfe6fb; } body.theme-dark .music-artist { color: var(--text-secondary); } body.theme-dark .section-title, body.theme-dark h1, body.theme-dark h2, body.theme-dark h3, body.theme-dark .logo-title, body.theme-dark .logo-sub, body.theme-dark .subtitle, body.theme-dark .songCount, body.theme-dark #detailSongCount { color: var(--text-primary); } body.theme-dark .section-title { border-bottom-color: rgba(102, 204, 255, 0.25); } body.theme-dark .player-btn, body.theme-dark .fs-btn, body.theme-dark .search-btn, body.theme-dark .refresh-btn, body.theme-dark .add-playlist-btn, body.theme-dark .back-btn, body.theme-dark .modal-close-btn, body.theme-dark .playlist-btn { background: #243140; color: var(--primary-color); } body.theme-dark .player-btn:hover, body.theme-dark .fs-btn:hover, body.theme-dark .modal-close-btn:hover { background: #2f4153; } body.theme-dark .list-fs-btn, body.theme-dark .settings-btn { background: transparent; color: var(--primary-color); } body.theme-dark .list-fs-btn:hover, body.theme-dark .settings-btn:hover { background: rgba(102, 204, 255, 0.14); } body.theme-dark .back-btn { background: none; } body.theme-dark .search-input, body.theme-dark input, body.theme-dark textarea, body.theme-dark .modal-box input { background: #0f1822; color: var(--text-primary); border-color: #2a3a4a; } body.theme-dark .theme-option { background: #0f1822; color: var(--text-primary); border-color: #2a3a4a; } body.theme-dark .theme-option.active { background: rgba(102, 204, 255, 0.15); color: var(--primary-color); border-color: var(--primary-color); } body.theme-dark .status-indicator { color: var(--text-secondary); } /* ========== 移动端适配(置于末尾,确保覆盖上方基础规则) ========== */ @media (max-width: 768px) { :root { --sidebar-w: 0px; } .app-sidebar { display: none !important; } body.app-ready { padding-left: 0; padding-bottom: 0; } .app-page { padding: 14px 14px 165px; } .app-page.anim-in { animation: pageInMobile 0.38s cubic-bezier(0.22, 0.61, 0.36, 1); } /* 底部播放栏:上移到导航栏之上,整体压扁 */ body.app-ready .player-section { left: 0; width: 100%; bottom: 58px; padding: 8px 12px; } /* 歌名单独占一行(省略号,不再竖排堆叠),作者次之,按键集中一排 */ .player-controls { flex-direction: column; align-items: stretch; gap: 6px; margin-bottom: 0; } .player-info { flex: none; min-width: 0; } .now-playing { font-size: 1rem; font-weight: 600; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .player-artist { font-size: 0.78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .player-buttons { justify-content: space-between; gap: 6px; } .player-btn { width: 42px; height: 42px; font-size: 1.15rem; } .play-btn { font-size: 1.4rem; } /* 移动端取消进度条,进一步降低高度 */ .progress-container { display: none; } .stats-grid { grid-template-columns: 1fr; } /* 底部导航栏:必须显示 */ .mobile-nav { display: flex; z-index: 110; } /* ===== 全屏播放器移动端:缩小尺寸、防止溢出 ===== */ .fs-player { padding: 16px; } .fs-close { top: 14px; left: 14px; font-size: 1.4rem; } .fs-content { flex-direction: column; gap: 18px; padding: 0 6px; overflow: visible; } .fs-disc-wrap { width: 160px; height: 160px; } .fs-disc { font-size: 3.4rem; } .fs-right { width: 100%; max-width: 100%; } .fs-lyric { font-size: 1.15rem; margin-bottom: 6px; } .fs-artist { font-size: 0.88rem; margin-bottom: 18px; } .fs-controls { flex-wrap: nowrap; gap: 8px; } .fs-btn { width: 46px; height: 46px; font-size: 1.05rem; } .fs-play { width: 58px; height: 58px; font-size: 1.3rem; } .fs-progress-bar { margin-top: 14px; } .fs-time { font-size: 0.8rem; } .fs-list-panel { width: 100%; max-width: none; } }

欢迎来到洛天依音乐分享站

本站为邀请制,请输入 6 位邀请码进入

请输入正确的邀请码以继续

洛天依音乐分享站用户协议

请仔细阅读以下协议内容,您需要同意所有条款才能使用本服务

一、服务说明与使用条款

欢迎使用洛天依音乐分享站!本平台是一个非营利性的洛天依音乐爱好者分享社区,所有音乐资源均由用户上传分享,仅供个人学习和欣赏使用。

在使用本服务前,请您务必仔细阅读并理解本协议的全部内容。如果您不同意本协议的任意条款,请立即停止使用本服务。

1.1 服务内容

洛天依音乐分享站为用户提供以下服务:

  • 洛天依相关音乐的在线播放
  • 音乐资源的搜索与发现
  • 个人音乐收藏功能
  • 音乐下载(仅限于个人使用)

1.2 使用限制

您同意在使用本服务时遵守以下规定:

  • 仅将本服务用于个人非商业用途
  • 不得对本站进行逆向工程、破解或任何形式的攻击
  • 不得上传或分享任何非法、侵权、淫秽或暴力内容
  • 不得利用本站从事任何违法活动

二、版权声明与免责条款

洛天依音乐分享站高度重视知识产权保护,并致力于为用户提供合法合规的音乐分享服务。

2.1 版权声明

本站所有音乐资源的版权归原著作权人所有,包括但不限于:

  • 音乐作品的著作权人
  • 录音制品的制作人
  • 表演者权所有人
  • 相关邻接权人

2.2 免责声明

用户需知并同意以下免责条款:

  • 本站仅为音乐爱好者提供交流分享平台,不对用户上传的内容承担任何责任
  • 用户应自行确保上传的内容不侵犯任何第三方的知识产权
  • 如发生版权纠纷,本站将在收到有效通知后立即移除相关内容
  • 用户因使用本站服务而产生的任何直接、间接损失,本站不承担责任

三、用户行为规范与隐私保护

为维护良好的社区环境,保护用户个人信息安全,特制定以下规范:

3.1 用户行为规范

您在使用本服务时承诺:

  • 遵守中华人民共和国法律法规
  • 尊重其他用户,不进行人身攻击或骚扰
  • 不发布任何违法、违规、不实信息
  • 不干扰或破坏本站的正常运行
  • 不进行任何商业广告或推广活动

3.2 隐私保护

我们重视您的隐私,承诺:

  • 不会主动收集您的个人身份信息
  • 播放记录等数据仅保存在您的设备本地
  • 不向第三方提供或出售任何用户数据
  • 采用技术措施保护数据传输安全

四、服务变更与终止

为了提供更好的服务,我们可能需要对服务内容进行调整,请您理解并同意以下条款:

4.1 服务变更

我们保留以下权利:

  • 随时修改、暂停或终止部分或全部服务
  • 更新本协议条款,并在网站上公布
  • 调整服务内容和功能
  • 限制、暂停或终止违规用户的使用权限

4.2 协议终止

在以下情况下,本协议可能终止:

  • 您主动停止使用本站服务
  • 您违反本协议的任何条款
  • 由于不可抗力导致服务无法继续提供
  • 法律法规或政府要求
歌曲标题
作者
播放列表
0:000:00