好程式設計師web前端培訓分享CSS3實現全景圖特效

好程式設計師IT發表於2019-04-15

  本篇文章 好程式設計師 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: 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;

  }

  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2641455/,如需轉載,請註明出處,否則將追究法律責任。

相關文章