圖片輪播是 Web 頁面展示產品、Banner、作品集的核心組件。優秀的輪播需兼顧:效能(首屏載入)、無障礙(鍵盤/螢幕閱讀器)、響應式佈局、觸控支援、SEO 友好。本文將梳理 jQuery 時代的經典方案,並提供現代化遷移建議。
| 插件 | 體積 (gz) | 特色 | 適用場景 |
|---|---|---|---|
| Nivo Slider | ~10 KB | 16 種轉場效果、響應式、HTML 標題、主題皮膚、MIT 協議 | 企業官網、產品展示頁 |
| FlexSlider 2 | ~12 KB | 觸控滑動、縮圖導航、無限循環、RTL 支援 | 電商 Banner、移動端適配 |
| Owl Carousel 2 | ~14 KB | 模組化、懶載入、自動播放、階層式佈局 | 複雜佈局、多項目輪播 |
| Swiper (jQuery 版) | ~20 KB | 硬體加速、3D 效果、虛擬滑動、強大的 API | 高性能需求、App 混合開發 |
| Slick | ~11 KB | 無限循環、多行顯示、響應式斷點、豐富回調 | 內容資訊流、多圖佈局 |
| bxSlider | ~8 KB | 簡單易用、支援影片、自適應高度、回調完善 | 快速原型、輕量專案 |
| ResponsiveSlides.js | ~1 KB | 極簡、無依賴 (原生 JS)、僅 1KB、無障礙優先 | 極簡頁面、效能敏感場景 |
| Unslider | ~3 KB | 超輕量、鍵盤導航、流體佈局、無外部依賴 | 個人部落格、落地頁 |
| Glide.js | ~6 KB | ES6 模組、觸控/滑鼠/鍵盤、自動播放、懶載入 | 現代構建工具鏈專案 |
| Flickity | ~15 KB | 自然物理彈性、自由滾動、無障礙、無 jQuery 依賴 | 高端品牌展示、複雜互動 |
| Siema | ~2 KB | 無依賴、無 CSS、極簡 API、可自訂動畫 | 微型專案、學習參考 |
| Tiny Slider | ~3 KB | 無依賴、支援 Edge 12+、懶載入、無限循環 | 現代瀏覽器專案、替代 Slick |
<link rel="stylesheet" href="nivo-slider.css">
<link rel="stylesheet" href="themes/default/default.css">
<script src="jquery.min.js"></script>
<script src="jquery.nivo.slider.min.js"></script>
<div id="slider" class="nivoSlider" role="region" aria-label="產品輪播">
<img src="slide1.jpg" alt="產品一:雲端資料庫服務" title="<h3>雲端資料庫</h3><p>高可用、自動備份</p>">
<img src="slide2.jpg" alt="產品二:AI 分析平台" title="<h3>AI 分析</h3><p>即時洞察業務數據</p>">
<img src="slide3.jpg" alt="產品三:DevOps 自動化" title="<h3>DevOps</h3><p>一鍵部署、滾動更新</p>">
</div>
$('#slider').nivoSlider({
effect: 'fade', // 指定單一效果,或 'random'
slices: 15, // 切片數量
boxCols: 8, boxRows: 4, // 方塊轉場網格
animSpeed: 500, // 動畫速度 (ms)
pauseTime: 4000, // 自動播放間隔
startSlide: 0, // 起始索引
directionNav: true, // 上一張/下一張箭頭
controlNav: true, // 底部圓點導航
controlNavThumbs: false, // 縮圖導航
pauseOnHover: true, // 懸停暫停
manualAdvance: false, // 手動模式
prevText: '上一張', // 无障碍文本
nextText: '下一張',
beforeChange: function(){}, // 切換前回調
afterChange: function(){}, // 切換後回調
afterLoad: function(){} // 載入完成回調
});
隨著瀏覽器原生 API 成熟(IntersectionObserver, Scroll Snap, Web Animations API),新專案建議優先選擇 無 jQuery 依賴的現代輪播庫(如 Swiper 8+, Flickity, Embla Carousel, Splide)。它們具備:
若維護舊專案,可透過 jquery-slim 減少體積,或採用「漸進式增強」策略:核心輪播用原生 JS,複雜互動再引入 jQuery 插件。
srcset/sizes)、懶載入 (loading="lazy")。<head>,避免佈局位移 (CLS)。<link rel="preload" as="image" href="first-slide.webp">。transform: translateX() 而非 left/top,啟用 will-change: transform。aria-roledescription="carousel"、鍵盤操作、焦點管理、動畫減弱偏好 (prefers-reduced-motion)。jQuery 輪播插件曾輝煌一時,Nivo Slider、FlexSlider、Owl Carousel 等經典之作見證了前端工程化的早期探索。如今,選型標準已從「功能多寡」轉向「效能指標、無障礙合規、開發體驗、生態整合」。建議新專務採用現代原生庫,舊專案按需重構,讓輪播真正成為提升使用者體驗的加分項,而非效能負擔。