test.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  6. <title>饰品商城</title>
  7. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
  8. <style>
  9. /* 公共样式 */
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  15. }
  16. body {
  17. background-color: #f5f5f5;
  18. color: #333;
  19. font-size: 14px;
  20. padding-bottom: 60px; /* 为底部tab栏留出空间 */
  21. }
  22. /* 底部Tab栏 */
  23. .tab-bar {
  24. position: fixed;
  25. bottom: 0;
  26. left: 0;
  27. right: 0;
  28. display: flex;
  29. background-color: white;
  30. border-top: 1px solid #eee;
  31. z-index: 100;
  32. }
  33. .tab-item {
  34. flex: 1;
  35. display: flex;
  36. flex-direction: column;
  37. align-items: center;
  38. justify-content: center;
  39. padding: 8px 0;
  40. color: #666;
  41. }
  42. .tab-item.active {
  43. color: #1890ff;
  44. }
  45. .tab-item i {
  46. font-size: 20px;
  47. margin-bottom: 2px;
  48. }
  49. .tab-item span {
  50. font-size: 12px;
  51. }
  52. /* 页面容器 */
  53. .page {
  54. display: none;
  55. padding: 10px;
  56. }
  57. .page.active {
  58. display: block;
  59. }
  60. </style>
  61. </head>
  62. <body>
  63. <!-- 内容区域 -->
  64. <div id="app">
  65. <!-- 首页 -->
  66. <div id="home-page" class="page">
  67. <!-- 首页内容 -->
  68. </div>
  69. <!-- 发现 -->
  70. <div id="discover-page" class="page">
  71. <!-- 发现内容 -->
  72. </div>
  73. <!-- 库存 -->
  74. <div id="inventory-page" class="page">
  75. <!-- 库存内容 -->
  76. </div>
  77. <!-- 店铺 -->
  78. <div id="shop-page" class="page">
  79. <!-- 店铺内容 -->
  80. </div>
  81. <!-- 我的 -->
  82. <div id="my-page" class="page">
  83. <!-- 我的内容 -->
  84. </div>
  85. </div>
  86. <!-- 底部Tab栏 -->
  87. <div class="tab-bar">
  88. <div class="tab-item active" data-target="home-page">
  89. <i class="bi bi-house"></i>
  90. <span>首页</span>
  91. </div>
  92. <div class="tab-item" data-target="discover-page">
  93. <i class="bi bi-compass"></i>
  94. <span>发现</span>
  95. </div>
  96. <div class="tab-item" data-target="inventory-page">
  97. <i class="bi bi-bag"></i>
  98. <span>库存</span>
  99. </div>
  100. <div class="tab-item" data-target="shop-page">
  101. <i class="bi bi-shop"></i>
  102. <span>店铺</span>
  103. </div>
  104. <div class="tab-item" data-target="my-page">
  105. <i class="bi bi-person"></i>
  106. <span>我的</span>
  107. </div>
  108. </div>
  109. <script>
  110. document.addEventListener('DOMContentLoaded', function() {
  111. // 获取所有页面和Tab项
  112. const pages = document.querySelectorAll('.page');
  113. const tabItems = document.querySelectorAll('.tab-item');
  114. // 初始化默认显示首页
  115. pages[0].classList.add('active');
  116. // 添加点击事件监听
  117. tabItems.forEach(item => {
  118. item.addEventListener('click', function() {
  119. const targetPageId = this.getAttribute('data-target');
  120. // 移除所有页面的active类
  121. pages.forEach(page => page.classList.remove('active'));
  122. // 添加目标页面的active类
  123. document.getElementById(targetPageId).classList.add('active');
  124. // 更新底部Tab的active状态
  125. tabItems.forEach(tab => tab.classList.remove('active'));
  126. this.classList.add('active');
  127. });
  128. });
  129. });
  130. </script>
  131. </body>
  132. </html>