HTML圖片輪播


一、純 CSS 實現圖片輪播

引自原文作者:南張人
原文鏈接:https://blog.csdn.net/u011848617/article/details/80468463

理論基礎

CSS3 animation 屬性@keyframes 規則

主體思想

  1. 准備相同大小的多個圖片
  2. 將要展示圖片橫排放在一個圖片容器里面
  3. 在圖片容器外再加一個展示容器,展示容器大小為圖片大小
  4. 給圖片容器添加自定義動畫,在動畫不同階段設置遞增的偏移值

注意事項

  • 動畫效果分為切換和停留兩部分
  • 自定義動畫階段與圖片數量相關
  • 動畫各階段偏移值與圖片大小相關
  • 本文中示例最后一個圖片到第一個圖片沒有切換效果,一個思路是可以由最后一個圖片再挨個切換到第一個圖片

HTML

<div id="container">
    <div id="photo">
        <img src="1.png" />
        <img src="2.png" />
        <img src="3.png" />
    </div>
</div>

解析
這里創建了三個 img 元素,img 元素外面是圖片容器,圖片容器外面是展示容器。
CSS

#container {
	width: 400px;
	height: 300px;
	overflow: hidden;
}
 
#photo {
	width: 1200px;
	animation: switch 5s ease-out infinite;
}
 
#photo > img {
	float: left;
	width: 400px;
	height: 300px;
}
 
@keyframes switch {
	0%, 25% {
		margin-left: 0;
	}
	35%, 60% {
		margin-left: -400px;
	}
	70%, 100% {
		margin-left: -800px;
	}
}

解析

  • 展示容器大小和圖片大小一致
  • 圖片添加 float 效果,不用考慮麻煩的 margin 問題
  • 由於示例只有三個圖片,所以添加了三個動畫階段,每一階段都是通過設置遞增的 margin-left 值達到切換的效果
  • 設置的動畫階段(如:35%60%)是動畫停留部分,和上一階段空余時間(如25%35%)即為動畫切換部分,各部分時間長短需要自己把控

運行效果
在這里插入圖片描述
Github 地址

https://github.com/nanzhangren/CSS_skills/blob/master/animation/slide_image/slide_image.html

大佬的公眾號

在這里插入圖片描述


占個坑位,下面JS等實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM