天天看點

好程式員web前端教育訓練分享CSS3實作全景圖特效

  本篇文章好程式員web前端教育訓練将給大家帶來一個css3的黑-科技:如何僅僅使用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;

  }

  @keyframes panorama {

  to {

  background-position: 100% 0;

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

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

  手動控制動畫執行

  到這裡為止,當我們打開該網頁後,立馬會出現一張圖檔來回水準滑動的效果。但是這樣的話,訪客可能會被動畫吸引而忽略了真正的内容。

  我們的要求是當滑鼠懸浮于圖檔時才讓它動起來,我們當然可以很簡單的實作這個效果。

  删除之前的animation,添加以下樣式。

.panorama:hover,

  .panorama:focus {

  複制代碼

  現在的效果是:滑鼠移入圖檔,圖檔開始水準來回滑動。

  動畫的優化

  雖然效果達到了,但是你會發現,當滑鼠移出圖檔,圖檔立刻回到初始位置。

  對于我們來說,這有點突然,如何記錄圖檔目前的位置并且當滑鼠移入時繼續執行動畫呢?

  我們可以依靠這個屬性animation-play-state: paused | running,它表示動畫的兩個狀态:暫停和運作。

  完整css代碼.panorama {

  animation-play-state: paused;

  .panorama:hover,

  animation-play-state: running;

繼續閱讀