在網頁圖片顯示的時候,會發現許多網站采用了先模糊,然后在慢慢清晰的過程,這樣的加載用戶體驗是比較好的,那么如何實現吶?
默認加載2張圖片,一張縮略圖,一張原圖,當打開網頁的時候默認只顯示縮略圖,然后我們把縮略圖模糊處理后按照原圖尺寸顯示,這樣做的目的是為了提高用戶體驗;
使用js去監聽原圖的加載,當原圖加載成功后,我們把縮略圖隱藏,讓原圖顯示出來。這樣就實現了圖片由模糊變成清晰的過程,為了讓變化有漸變效果,我們需要使用到css的transition屬性。具體代碼實現如下:
html:
1 <div class="box"> 2 <img src="" class="bg"/> 3 <img src="" class="show_img"/> 4 </div>
css:
1 .box{ 2 position: relative;overflow: hidden;height: 300px;width: 300px; 3 } 4 .box img{ 5 width: 100%;height: 100%; 6 } 7 .box .bg{/*縮略圖*/ 8 display: block;filter: blur(15px);transform: scale(1); 9 } 10 .box .show_img{/*加載完成顯示的實際圖*/ 11 position: absolute;opacity: 0;top: 0;left: 0;transition: opacity 1s linear; 12 }
51220網站目錄 https://www.51220.cn
js:
1 <script> 2 var show_img=document.querySelector('.show_img'), 3 /*圖片加載完成*/ 4 show_img.onload = function () { 5 show_img.style.opacity="1"; 6 }; 7 </script>