css3輪播圖實現代碼


之前公式有一個小的case,文字輪播,鼠標移入后輪播暫停,移除后輪播繼續,考慮用js寫,但想到c3動畫api:animation可以實現,就利用它來實現,不需要js哦。

首先還是介紹一下animation吧。

基礎用法(詳見w3c):

下面開始代碼實現步驟

 

1,輪播圖的實現原理如圖(渣渣美術手感,謝絕吐槽─━ _ ─━)

  html元素構建結構類似這樣

<div>
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>1</li>
  </ul>
</div>

 如圖,設置每個li標簽的寬高和顯示元素<div>相同,這時候會發現ul的長度會超過div,再利用css屬性中overflow:hidden,(內容會被修剪,並且其余內容是不可見的)。他會隱藏掉多余的部分,這樣:

這是后你移動ul,就會產生圖片移動的輪播效果

好,下面我們進入代碼編寫模塊。

首先根據 animation的設置,寫一個

@keyframes 
 
@keyframes imgMove {
  from {
    transform: translateX(0px);
  }
  to {
    transform: translateX(-882px);
  }
}
這里可以看到,我是利用transform: translateX( )來控制他的位移的,
 
然后是animation 的編寫
 
  animation: imgMove 5s linear infinite;
介紹一下設置
 
  1-  animation-name  執行動畫的名稱imgMove
  2-animation-duration  完成動畫的時間5s
  3-animation-timing-function 完成動畫是的速度   linear -勻速
  4-animation-iteration-count  播放的次數  infinite-無限次播放 
 
  最后是實現鼠標移入動畫暫停,這里有兩個介紹:
  1· :hover{}定義鼠標移入觸發的事件
  2·animation-play-state:paused/running  動畫的暫停與播放
 
  下面是完整代碼,使用時需要添加圖片,各位自己添加哈
  
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
* {
padding: 0;
margin: 0;
}
div {
width: 882px;
height: 86px;
margin: 200px auto;
overflow: hidden;
}
div > ul {
/*設置ul的寬度為2倍div的寬度*/
width: 200%;
list-style: none;
/*動畫屬性*/
animation: imgMove 5s linear infinite;

}
/* 暫停動畫 */
div>ul:hover{
animation-play-state: paused;
}

div > ul > li {
width: 126px;
float: left;
}

div img {
width: 100%;
}
/*創建動畫*/
@keyframes imgMove {
from {
transform: translateX(0px);
}
to {
transform: translateX(-882px);
}
}
</style>
</head>
<body>
<div>
<ul>
<li><img src="images/1.jpg" alt=""/></li>
<li><img src="images/2.jpg" alt=""/></li>
<li><img src="images/3.jpg" alt=""/></li>
<li><img src="images/4.jpg" alt=""/></li>
<li><img src="images/5.jpg" alt=""/></li>
<li><img src="images/6.jpg" alt=""/></li>
<li><img src="images/7.jpg" alt=""/></li>
<!--將需要輪播的圖片在復制一份-->
<li><img src="images/1.jpg" alt=""/></li>
<li><img src="images/2.jpg" alt=""/></li>
<li><img src="images/3.jpg" alt=""/></li>
<li><img src="images/4.jpg" alt=""/></li>
<li><img src="images/5.jpg" alt=""/></li>
<li><img src="images/6.jpg" alt=""/></li>
<li><img src="images/7.jpg" alt=""/></li>
</ul>
</div>
</body>
</html>

 

 
 
搞定 !
  


免責聲明!

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



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