CSS能否做出輪播效果一直是web前端開發人員經常討論的話題。實際上,通過CSS動畫可以非常簡單地實現輪播效果。
.slider { position: relative; width: 100%; height: 400px; overflow: hidden; } .slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity .5s ease-in-out; } .slide.active { opacity: 1; } /* 按鈕樣式 */ .slider-controls { text-align: center; margin-top: 20px; } .slider-controls button { background-color: #ddd; border: none; padding: 10px 16px; margin: 0 8px; border-radius: 4px; font-size: 16px; cursor: pointer; } .slider-controls button.active { background-color: #333; color: #fff; }
以上就是一個簡單的CSS輪播代碼。接下來詳細理解下這份代碼實現的思路
首先我們需要一個容器來存放輪播圖,那么在HTML結構中需要添加一個.slider,這個盒子的高度寬度需要設定,overflow 設置為hidden,這個操作是用于隱藏滑動圖片的過渡。
接下來我們需要讓圖片能平置在slider容器中,所以給img添加相對定位,置于容器的上層。在進行輪播的時候,需要有一個慢慢變淡,另一個慢慢顯現的效果,所以要給每個slide添加opacity : 0, transition: opacity .5s ease-in-out;后,再為當前顯示的slide添加一個class為active,同時滑動式更簡單,通過向左或向右移動圖片的left或top屬性,達到想要的輪播效果。
為了進行用戶控制,我們通過對上方樣式代碼繼續改造,向模板中添加按鈕,控制每一張圖片的顯示,步驟為:我們在前面的圖片中添加按鈕,這樣做用戶可以自由切換圖片,切換圖片的時候可以左右移動圖片的left或top來達到想要的效果。
需要注意:為了防止用戶連續快速點擊按鈕導致動畫失效,建議使用setTimeout函數給予短暫的等待時間。
所以我們得出一個結論,CSS通過transition,opacity和position,左右移動達到輪播圖的效果是完全可以實現的,代碼量較小也方便實現。
上一篇json報文格式解析工具
下一篇ajax異步查詢demo