首頁 >web前端 >js教程 >react實作一個圖片佔位模組組件詳解

react實作一個圖片佔位模組組件詳解

小云云
小云云原創
2018-01-04 09:15:392077瀏覽

本文主要為大家介紹了關於react如何實現一個還算優雅的佔位模組圖片組件的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值。希望能幫助大家。

前言

發現專案中的圖片佔位模組寫得很不優雅,找了一圈,發現沒找到自己想要的圖片組件。於是自己寫了一個,寫了一個還算優雅的圖片元件:mult-transition-image-view

#截圖:


##功能簡介


首先它是一個比較優雅的元件:用起來不會頭痛。


第二個它能實現以下場景:

  • 沒有圖片的時候,顯示一個佔位圖(可以直接用css來寫背景,方便自訂)

  • 希望在載入大圖的時候,能先佔位一張小圖,然後再過渡到一張大圖。類似上面的截圖。

使用方法


安裝npm 套件

npm install react-mult-transition-image-view
程式碼部分

 import ImageBoxView from 'react-mult-transition-image-view'

 <ImageBoxView img="#你的图片#"/>
當然你可以設定其他屬性

 <ImageBoxView
 width="320" // 
 height="200" // 宽高,会转化成 style 属性
 mode="style" // 使用 style 去显示图片(默认:img)
 img="#你要的图片#"/> // 图片路径
小圖過渡到大圖的效果

 <ImageBoxView
 animate="fade" // 会触发动画样式(见下方样式部分 )
 mode="style" // 使用 style 去显示图片(默认:img)
 img={[&#39;#小图地址#&#39;, &#39;#大图地址#&#39;]}/> // img 传入数组形式。
實現隨機顯示圖片

#當有很多圖片的時候,可以讓圖片隨機時間顯示,增加圖片顯示出來的體驗

(一起出來真的有點醜)

 <ImageBoxView
 delay="100" // 延迟加载(默认:0),可以传入一个随机数
 img="#你要的图片#"/> // 图片路径
投影片效果

因為img 屬性可以傳入數組,所以理論上可以載入很多圖,實現投影片效果。

使用wait 屬性來設置,每張圖片載入後的等待時間

 <ImageBoxView
 animate="fade" // 会触发动画样式(见下方样式部分 )
 wait="100" // 每张图片加载完后,继续加载下一张的时间(默认:0)
 mode="style" // 使用 style 去显示图片(默认:img)
 img={[&#39;#图片1#&#39;, &#39;#图片2#&#39;, &#39;#图片3#&#39;]}/> // img 传入数组形式。
樣式部分


別忘了樣式部分

.c-img-box{
 display:inline-block;
 width: 320px;
 height: 200px;
 background: #f7f6f5;
 position: relative;
 .img-hold{
 overflow: hidden;
 background-size: cover;
 background-repeat: no-repeat;
 background-position: center;
 img{
  width:100%;
  height:100%;
 }
 &.img-animate{
  transition: opacity 0.5s;
 }
 }
 
 .img-cover{
 background: url('https://d.2dfire.com/om/images/menulist/7deb58da.default.png') no-repeat center/300px;
 background-color:#f0f0f0;
 }
 
 .img-cover,
 .img-hold,
 .img-hide{
 position: absolute;
 width: 100%;
 height: 100%;
 top:0;
 left:0;
 }
 
 .img-hide{
 opacity: 0;
 }
 
}
相關推薦:


React Native 建置開發環境詳解

#React封裝一個Portal可重複使用元件的實例程式碼

#淺談react 同構之樣式直出

以上是react實作一個圖片佔位模組組件詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn