diff --git a/assets/icons/rank.png b/assets/icons/achievement/achievement.png similarity index 100% rename from assets/icons/rank.png rename to assets/icons/achievement/achievement.png diff --git a/assets/icons/auction.png b/assets/icons/auction/auction.png similarity index 100% rename from assets/icons/auction.png rename to assets/icons/auction/auction.png diff --git a/assets/icons/calendar.png b/assets/icons/calendar/calendar.png similarity index 100% rename from assets/icons/calendar.png rename to assets/icons/calendar/calendar.png diff --git a/assets/icons/data/data.png b/assets/icons/data/data.png new file mode 100644 index 0000000..add985c Binary files /dev/null and b/assets/icons/data/data.png differ diff --git a/assets/icons/friends/friends.png b/assets/icons/friends/friends.png new file mode 100644 index 0000000..843611c Binary files /dev/null and b/assets/icons/friends/friends.png differ diff --git a/assets/icons/height/height.png b/assets/icons/height/height.png new file mode 100644 index 0000000..d6b8795 Binary files /dev/null and b/assets/icons/height/height.png differ diff --git a/assets/icons/inventory/inventory.png b/assets/icons/inventory/inventory.png new file mode 100644 index 0000000..744b9ec Binary files /dev/null and b/assets/icons/inventory/inventory.png differ diff --git a/assets/icons/mail.png b/assets/icons/mail/mail.png similarity index 100% rename from assets/icons/mail.png rename to assets/icons/mail/mail.png diff --git a/assets/icons/move/move.png b/assets/icons/move/move.png new file mode 100644 index 0000000..e869768 Binary files /dev/null and b/assets/icons/move/move.png differ diff --git a/assets/icons/notice.png b/assets/icons/notice/notice.png similarity index 100% rename from assets/icons/notice.png rename to assets/icons/notice/notice.png diff --git a/assets/icons/rank/rank.png b/assets/icons/rank/rank.png new file mode 100644 index 0000000..6001caf Binary files /dev/null and b/assets/icons/rank/rank.png differ diff --git a/assets/icons/settings.png b/assets/icons/settings/settings.png similarity index 100% rename from assets/icons/settings.png rename to assets/icons/settings/settings.png diff --git a/assets/icons/shop.png b/assets/icons/shop/shop.png similarity index 100% rename from assets/icons/shop.png rename to assets/icons/shop/shop.png diff --git a/assets/icons/task.png b/assets/icons/task/task.png similarity index 100% rename from assets/icons/task.png rename to assets/icons/task/task.png diff --git a/assets/icons/tech/tech.png b/assets/icons/tech/tech.png new file mode 100644 index 0000000..a42bd2d Binary files /dev/null and b/assets/icons/tech/tech.png differ diff --git a/assets/icons/terrain/terrain.png b/assets/icons/terrain/terrain.png new file mode 100644 index 0000000..86ee45f Binary files /dev/null and b/assets/icons/terrain/terrain.png differ diff --git a/assets/icons/website.png b/assets/icons/website/website.png similarity index 100% rename from assets/icons/website.png rename to assets/icons/website/website.png diff --git a/world.html b/world.html index d13306f..b50672b 100644 --- a/world.html +++ b/world.html @@ -185,11 +185,15 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa /* 场景悬浮工具条:浮于场景画面、紧贴顶部栏下方 */ #sceneToolbar{ position:fixed; top:calc(58px + env(safe-area-inset-top) + 12px); right:max(18px, env(safe-area-inset-right)); z-index:90; - display:flex; align-items:center; gap:10px; pointer-events:auto; - padding:9px 11px; border-radius:16px; + display:grid; grid-template-columns:repeat(3,46px); grid-auto-rows:46px; gap:10px; pointer-events:auto; + padding:11px; border-radius:16px; background:rgba(12,18,32,.78); border:1px solid rgba(139,92,246,.35); backdrop-filter:blur(10px); box-shadow:0 8px 28px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.06); + transition:padding .2s, border-radius .2s; } +/* 折叠态:只显示汉堡按钮(单列) */ +#sceneToolbar.collapsed{ grid-template-columns:46px; grid-auto-rows:46px; } +#sceneToolbar.collapsed .top-icon:not(#btnToolbarToggle){ display:none; } .top-icon{ position:relative; width:46px; height:46px; border-radius:13px; flex-shrink:0; display:flex; align-items:center; justify-content:center; @@ -205,6 +209,11 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa font-size:11px; font-weight:800; color:#fff; background:#ef4444; border-radius:999px; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(239,68,68,.5); } +.top-icon-badge[hidden]{display:none !important;} +.top-icon.active{outline:2px solid rgba(255,255,255,.75); box-shadow:0 0 18px rgba(140,180,255,.6); border-color:rgba(139,92,246,.7);} +.top-icon svg{width:56%;height:56%;object-fit:contain;pointer-events:none;} +.toolbar-toggle{ background:rgba(139,92,246,.2); border-color:rgba(139,92,246,.5); color:#c4b5fd; } +.toolbar-toggle:hover{ background:linear-gradient(135deg, rgba(139,92,246,.4), rgba(74,175,255,.3)); border-color:rgba(139,92,246,.7); color:#fff; } /* 世界等级经验条(位于 bottomBar 内最左侧,加大加清晰) */ #worldExpBarWrap{ @@ -762,7 +771,8 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa #navControls{bottom:calc(96px + env(safe-area-inset-bottom));right:14px; grid-template-columns:repeat(3,60px);grid-template-rows:repeat(3,60px);gap:6px;} #navControls button{width:60px;height:60px;font-size:24px;border-radius:15px;} - #sceneToolbar{right:12px;gap:7px;padding:8px 10px;} + #sceneToolbar{right:12px;gap:7px;padding:9px 10px;grid-template-columns:repeat(3,40px);grid-auto-rows:40px;} + #sceneToolbar.collapsed{grid-template-columns:40px;grid-auto-rows:40px;} #sceneToolbar .top-icon{width:40px;height:40px;font-size:19px;} } @media (max-width:420px){ @@ -770,7 +780,8 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa #bottomBar .bb-btn{padding:7px 9px;font-size:11px;} #worldExpBarWrap{width:280px;gap:5px;} #worldExpBarWrap .we-title{display:none;} - #sceneToolbar{right:8px;gap:5px;padding:6px 7px;top:calc(58px + env(safe-area-inset-top) + 6px);} + #sceneToolbar{right:8px;gap:5px;padding:7px 8px;top:calc(58px + env(safe-area-inset-top) + 6px);grid-template-columns:repeat(3,34px);grid-auto-rows:34px;} + #sceneToolbar.collapsed{grid-template-columns:34px;grid-auto-rows:34px;} #sceneToolbar .top-icon{width:34px;height:34px;font-size:16px;} } @@ -948,30 +959,33 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa -
- - - - - - - - - +
- - - - - - - -
@@ -1086,9 +1100,7 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa #btnBuild{background:rgba(100,200,255,.12);border:1px solid rgba(100,200,255,.3);color:#9fd;padding:9px 14px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;pointer-events:auto;transition:.2s;box-shadow:0 4px 16px rgba(80,120,255,.35);} #btnBuild:hover{filter:brightness(1.12);} #btnBuild.active{background:linear-gradient(135deg,#8b5cf6,#4aafff);color:#fff;border-color:transparent;box-shadow:0 0 14px rgba(100,170,255,.5);} -#btnTech{background:rgba(120,255,200,.12);border:1px solid rgba(120,255,200,.3);color:#9ff;padding:9px 14px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;pointer-events:auto;transition:.2s;box-shadow:0 4px 16px rgba(80,255,180,.3);} -#btnTech:hover{filter:brightness(1.12);} -#btnTech.active{background:linear-gradient(135deg,#10b981,#4aafff);color:#fff;border-color:transparent;box-shadow:0 0 14px rgba(100,220,180,.5);} +#btnTech.active{background:linear-gradient(135deg,#10b981,#4aafff);border-color:transparent;box-shadow:0 0 14px rgba(100,220,180,.5);} .bb-btn.active{outline:2px solid rgba(255,255,255,.75);box-shadow:0 0 18px rgba(140,180,255,.6);} /* ===== 统一左侧面板(数据 / 包裹 / 建造 三合一) ===== */ @@ -7671,6 +7683,11 @@ if (typeof fitWorld === 'function') fitWorld(); // 场景悬浮工具条:官网、任务、商城、公告、排行榜、日历、拍卖行 const btnWebsite = document.getElementById('btnWebsite'); if (btnWebsite) btnWebsite.addEventListener('click', () => { location.href = 'index.html'; }); + const btnToolbarToggle = document.getElementById('btnToolbarToggle'); + if (btnToolbarToggle) btnToolbarToggle.addEventListener('click', (e) => { + e.stopPropagation(); + document.getElementById('sceneToolbar').classList.toggle('collapsed'); + }); const btnTask = document.getElementById('btnTask'); if (btnTask) btnTask.addEventListener('click', () => { openTaskPanel(); }); const btnMall = document.getElementById('btnMall');