圖片延時載入技術對大流量的網站來說是十分實用的。目前圖片在網站中大量使用,如果不加處理的話會對伺服器和頻寬造成級大壓力,透過只渲染目前使用者可見區域的圖片,可以大幅減少網站的請求數,降低網路頻寬資源。
unveil
這是一款十分輕量級的片時圖片加載組件
支援現代瀏覽器及IE7+, 對於支持retina (視網膜螢幕) 裝置
<img src="bg.png" data-src="img1.jpg" />
應用
<img src="bg.png" data-src="img2.jpg" data-src-retina="img2-retina.jpg" />
支援回呼
$(document).ready(function() { $("img").unveil(); });
支援手動觸發
$("img").unveil(200, function() { $(this).load(function() { this.style.opacity = 1; }); });
jquejquejquejquejqueal 的區域Github上面有4K個關注。
使用
引用jQuery和lazyload.js
$("img").trigger("unveil");
需要延時加載的圖片
<script src="jquery.js" type="text/javascript"></script> <script src="jquery.lazyload.js" type="text/javascript"></script>cho〜型圖🜀標時載入庫。不依賴jQuery,壓縮後僅2K。 支援IE8+ 使用
<img class="lazy" data-original="img/example.jpg" width="640" height="480">layzr.js 前幾天剛發布的一款Image Lazy Loading組件,依賴小,無裝置裝置(Quading組件,同樣依賴於快,無裝置裝置(Quading組件,同樣依賴不支援
$(function() { $("img.lazy").lazyload(); });更新 那麼,如何讓伺服器端將一堆HTML中的img轉換成data-src呢?其實很簡單,幾行正規就可以了,例如在node.js中可以這樣將img的src轉換成data-src(可直接按F12在瀏覽器的Console中運行)
<body> <img src="img/blank.gif" alt="Photo" data-echo="img/photo.jpg"> <script src="dist/echo.js"></script> <script> echo.init({ offset: 100, throttle: 250, unload: false, callback: function (element, op) { console.log(element, 'has been', op + 'ed') } }); // echo.render(); //手动触发调用 </script> </body>