開發過程中經常需要和圖片處理打交道,看了網上很多有關圖片處理的方法,都是講解得一知半解,沒有比較全面的總結。下面,將簡單總結一個我們通過vue去處理img標簽過程中,圖片加載時,與圖片加載失敗時的處理方法。
1.常見的一個圖片的處理流程,當接收到圖片時,若圖片較大,或者網絡較慢的情況,圖片還未加載完成,此時需要顯示一個正在加載中的圖片提示用戶圖片正在加載中。當圖片加載或讀取完畢時我們才替換需要顯示圖片顯示到標簽上。主要用的是img標簽中的onload方法進行處理,代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="box"> <img :src="loadImgSrc" :onload="onLoadImg(testImgSrc)"> </div> </body> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> new Vue({ el: '#box', data: { testImgSrc: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic2.zhimg.com%2F50%2Fv2-193cbb243dc14d3a016caaa54ba02837_hd.jpg&refer=http%3A%2F%2Fpic2.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1625726941&t=178316371a5e946d6b424ceb789595d6", //最終要加載的圖片 loadImgSrc: "/themes/default/demo/public/assets/images/loadinggif.gif", //加載中要顯示的圖片 }, methods: { onLoadImg: function(imgSrc) { //加載完成時觸發 console.log("onload", imgSrc) return 'this.src='+'"'+imgSrc+'";this.οnlοad=null'; }, } }); </script> </html>
到此,我們完成了一個圖片加載過程中,到加載完成時的一個處理流程。在圖片未完全加載成功時顯示loading提示圖,當圖片完全從服務器端down完成后替換顯示。
2.上面我們處理了圖片正常加載中的處理過程,接下來就是處理圖片的異常情況。當我們從服務器中讀取一張圖片的時候,除了上述的情況外,還有另外一種就是圖片鏈接丟失,或者本地網絡過慢無法加載圖片的情況。所以我們要在處理的情況中捕捉異常的情況,顯示錯誤狀態下的圖片,提示用戶圖片加載失敗。這里我們用到的是onerrror的方法,代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="box"> <img :src="loadImgSrc" :onload="onLoadImg(testImgSrc)" :onerror="onErrorImg(errorImgSrc)"> </div> </body> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> new Vue({ el: '#box', data: { errorImgSrc: "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1917562744,2542638399&fm=26&gp=0.jpg", //圖片加載失敗時的圖片 testImgSrc: "https://gimg2.baidu.com/image_search/", //要加載的圖片,此處鏈接隨便填用作演示圖片加載失敗的情況 loadImgSrc: "/themes/default/demo/public/assets/images/loadinggif.gif", //加載中要顯示的圖片 }, methods: { onLoadImg: function(imgSrc) { console.log("onload", imgSrc) return 'this.src='+'"'+imgSrc+'";this.οnlοad=null'; }, onErrorImg: function(imgSrc){ console.log("onload", imgSrc) return 'this.οnerrοr=null;this.src='+'"'+imgSrc+'";'; }, } }); </script> </html>
到此,圖片常見的加載中,加載失敗時的處理方法就基本實現了,希望對你有所幫助,