好程序員web前端培訓分享CSS3實現全景圖特效

  本篇文章好程序員web前端培訓將給你們帶來一個css3的黑-科技:如何僅僅使用css來實現全景圖的效果?css

 

  首先定義一些基本的樣式和動畫前端

 

.panorama {css3

width: 300px;程序員

height: 300px;web

background-image: url(http://7vilbi.com1.z0.glb.clouddn.com/blog/6608185829213862083.jpg);優化

background-size: auto 100%;動畫

cursor: pointer;url

animation: panorama 10s linear infinite alternate;blog

}圖片

@keyframes panorama {

to {

background-position: 100% 0;

}

}

 

background-size: auto 100%; 這段代碼的意思是讓圖片的高等於容器的高,而且水平方向自動,即圖片最左邊貼着容器左側。

 

  執行動畫的流程是:周而復始、往復交替、線性而且時間週期是10s。

 

  手動控制動畫執行

 

  到這裏爲止,當咱們打開該網頁後,立馬會出現一張圖片來回水平滑動的效果。可是這樣的話,訪客可能會被動畫吸引而忽略了真正的內容。

 

  咱們的要求是當鼠標懸浮於圖片時才讓它動起來,咱們固然能夠很簡單的實現這個效果。

 

  刪除以前的animation,添加如下樣式。

 

.panorama:hover,

.panorama:focus {

animation: panorama 10s linear infinite alternate;

}

  複製代碼

  如今的效果是:鼠標移入圖片,圖片開始水平來回滑動。

  動畫的優化

  雖然效果達到了,可是你會發現,當鼠標移出圖片,圖片馬上回到初始位置。

  對於咱們來講,這有點忽然,如何記錄圖片當前的位置而且當鼠標移入時繼續執行動畫呢?

  咱們能夠依靠這個屬性animation-play-state: paused | running,它表示動畫的兩個狀態:暫停和運行。

  完整css代碼.panorama {

width: 300px;

height: 300px;

background-image: url(http://7vilbi.com1.z0.glb.clouddn.com/blog/6608185829213862083.jpg);

background-size: auto 100%;

cursor: pointer;

animation: panorama 10s linear infinite alternate;

animation-play-state: paused;

}

.panorama:hover,

.panorama:focus {

animation-play-state: running;

}

@keyframes panorama {

to {

background-position: 100% 0;

}

}

相關文章
相關標籤/搜索