這是一個響應式圖片畫廊,能夠根據不同螢幕尺寸自動調整圖片排列方式。專案使用純HTML、CSS和JavaScript實現,無需任何外部框架。
Q2/
├── index.html # 主HTML檔案
├── style.css # CSS樣式檔案
├── script.js # JavaScript功能檔案
├── README.md # 說明檔案
└── image/ # 圖片資料夾
├── DSC07980.jpg
├── DSC07982.jpg
├── DSC07983.jpg
├── DSC07989.jpg
├── DSC07990.jpg
└── DSC07995.jpg
- 佈局: 2列3欄 (2×3 grid)
- 圖片比例: 正方形 (1:1)
- 標題字體: 3rem
- 佈局: 3列2欄 (3×2 grid)
- 圖片比例: 正方形 (1:1)
- 標題字體: 2rem
- 佈局: 6列1欄 (6×1 grid)
- 圖片比例: 16:9 (橫向矩形)
- 標題字體: 1.5rem
- ✅ 響應式設計,自動適應不同螢幕尺寸
- ✅ 圖片重新排列(非縮放)
- ✅ 優雅的載入動畫
- ✅ 圖片懸停效果
- ✅ 圖片點擊放大(燈箱效果)
- ✅ 鍵盤導航(左右箭頭、ESC鍵)
- ✅ 圖片載入狀態指示
- ✅ 載入失敗處理
- ✅ 觸控設備支援
使用CSS Grid實現響應式佈局:
/* 桌面版 - 2列3欄 */
@media screen and (min-width: 769px) {
.gallery {
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(3, 1fr);
}
}
/* 平板版 - 3列2欄 */
@media screen and (min-width: 481px) and (max-width: 768px) {
.gallery {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 1fr);
}
}
/* 手機版 - 6列1欄 */
@media screen and (max-width: 480px) {
.gallery {
grid-template-columns: 1fr;
grid-template-rows: repeat(6, 1fr);
}
}- 圖片載入管理: 監聽載入狀態,提供視覺回饋
- 燈箱效果: 點擊圖片放大檢視
- 鍵盤導航: 支援左右箭頭切換圖片
- 響應式監聽: 即時更新佈局資訊
- ✅ Chrome 60+
- ✅ Firefox 55+
- ✅ Safari 12+
- ✅ Edge 79+
- ✅ 行動瀏覽器
- 直接在瀏覽器中開啟
index.html - 調整瀏覽器視窗大小測試響應式效果
- 點擊圖片查看放大效果
- 使用鍵盤左右箭頭導航
- 將圖片放入
image/資料夾 - 在
index.html中添加對應的<div class="gallery-item">元素 - 更新CSS中的
grid-template-rows數量(如需要)
在 style.css 中調整對應媒體查詢的 grid-template-columns 和 grid-template-rows 屬性。
- 修改
.gallery-item類別調整圖片容器樣式 - 修改
.gallery-item:hover調整懸停效果 - 修改
h1類別調整標題樣式
- 使用
loading="lazy"延遲載入圖片 - CSS動畫使用
transform而非位置屬性 - 圖片使用
object-fit: cover保持比例 - JavaScript事件使用防抖動處理
- 確保所有圖片檔案存在於
image/資料夾中 - 圖片檔案名稱必須與HTML中的路徑一致
- 建議圖片檔案大小適中以確保載入速度
- 在不同裝置上測試響應式效果
- 初始版本發布
- 實現基本響應式佈局
- 添加燈箱效果
- 支援鍵盤導航
作者: 學生
課程: WebAPP開發
作業: 作業一第二題