首頁 > web前端 > css教學 > 如何僅使用CSS3來達到全景圖的效果

如何僅使用CSS3來達到全景圖的效果

巴扎黑
發布: 2017-05-27 17:26:38
原創
2096 人瀏覽過

  這篇文章將帶給大家一個css3黑科技:如何僅僅使用css來實現全景圖的效果?


## 

如何僅使用CSS3來達到全景圖的效果

 

  最終效果示範:demo

  頁面佈局

<p class="panorama"></p>
登入後複製


#  

基礎樣式

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

.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;
  }
}
登入後複製
#### ########

以上是如何僅使用CSS3來達到全景圖的效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板