純css解決方案:
<img src="broken.png" alt="">
img { position: relative; } img:after { content: url('替代圖片'); display: block; position: absolute; // 底下是故意要填滿並且背景填滿擋住底下那個很醜的加載失敗圖片(字體) z-index: 2; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff; }
這樣使用是應為img標簽的一些特性:
1,img是個比較特殊的標簽,和video一樣具有被替代性,所有當圖片加載成功時,原先定義的偽類會失去作用不提示。
2,alt屬性會在圖片加載失敗是出現(替代文字),這樣偽類就會起作用了。
網上很多說這樣也可以解決,但我測試暫未成功:
<div class="bg"> <img :src="goods.phoneFloorAd.resUrl" :onerror="errorImg01"> </div>
<script type="text/ecmascript-6"> export default { data () { return { errorImg01: 'this.src="' + require('assets/images/load_logo01.png') + '"' }; } } </script>