Lazy Load là một plugin của JQuery dùng để tải hình ảnh ở các website hoặc blog nội dung có nhiều ảnh. Sử dụng Lazyload giúp cho trang web load nhanh hơn, phần nội dung của trang web sẽ được load lên trước sau đó khi người dùng kéo chuột đến đâu Lazyload sẻ load hình ảnh đến đó, một số trường hợp nó còn có tác dụng giảm tải cho Web Server.
Sau đây là cách sử dụng Lazy load và cách dùng trong những trường hợp khác nhau:
Đặt trong thẻ <head>
Mặc định hình ảnh sẻ load ngay khi xuất hiện trên màn hình, nhưng nếu bạn cài đặt option này thì hình ảnh sẻ load trước khi xuất hiện trên màn hình ( trong ví dụ là 200px )
Tức là chỉ khi có sự kiện tương tác nào đó thì hình ảnh sẻ được load lên ví dụ như click, mouseover:
hoặc một sự kiện tùy chỉnh ( load sau 5 giây)
Mặc định plugin sẽ chờ hình ảnh load xong và gọi hàm show(). Bạn có thể sử dụng bất kì hiệu ứng nào bạn muốn. Ví dụ:
Mặc định trình duyệt lúc nào cũng bật Javascript, nhưng đôi lúc bị tắt đi bởi người dùng. Trường hợp này ta làm như sau:
Thêm đoạn code sau để bật Javascript cho trình duyệt:
Sử dụng khi hình ảnh bên trong một thẻ bao với thanh cuộn
Code Css:
Code Js:
Kiểm soát số lượng hình ảnh được load :
Đối phó với những hình ảnh "Invisible":
Download toàn bộ source code và ví dụ cụ thể tại đây
Chúc các bạn thành công!
Xem thêm:
- Cách lấy giá trị biến từ một URL bằng Javascript (Get URL Variables)
- Basic jQuery Slider - Slider đơn giản dễ sử dụng trong thiết kế web
- Code popup quảng cáo nằm dưới trình duyệt (popup under)
Sau đây là cách sử dụng Lazy load và cách dùng trong những trường hợp khác nhau:
Đặt trong thẻ <head>
Sử dụng mặc định: Ví dụ với một image<script src="jquery.js"></script> <script src="jquery.lazyload.js"></script>
Sử dụng với Threshold :<img class="lazy" data-original="img/example.jpg" width="640" height="480"> <script> $(function() { $("img.lazy").lazyload(); });</script>
Mặc định hình ảnh sẻ load ngay khi xuất hiện trên màn hình, nhưng nếu bạn cài đặt option này thì hình ảnh sẻ load trước khi xuất hiện trên màn hình ( trong ví dụ là 200px )
Sử dụng với một sự kiện tương tác:$("img.lazy").lazyload({ threshold : 200 });
Tức là chỉ khi có sự kiện tương tác nào đó thì hình ảnh sẻ được load lên ví dụ như click, mouseover:
$("img.lazy").lazyload({ event : "click" });
hoặc một sự kiện tùy chỉnh ( load sau 5 giây)
Sử dụng với một hiệu ứng:$(function() { $("img.lazy").lazyload({ event : "sporty" }); }); $(window).bind("load", function() { var timeout = setTimeout(function() { $("img.lazy").trigger("sporty") }, 5000); });
Mặc định plugin sẽ chờ hình ảnh load xong và gọi hàm show(). Bạn có thể sử dụng bất kì hiệu ứng nào bạn muốn. Ví dụ:
Sử dụng với trình duyệt "Non Javascript"$("img.lazy").lazyload({ effect : "fadeIn" });
Mặc định trình duyệt lúc nào cũng bật Javascript, nhưng đôi lúc bị tắt đi bởi người dùng. Trường hợp này ta làm như sau:
Để tránh việc xuất hiện cùng lúc 2 hình ảnh giống nhau ta thêm code css sau:<img class="lazy" data-original="img/example.jpg" width="640" heigh="480"> <noscript> <img src="img/example.jpg" width="640" heigh="480"> </noscript>
.lazy { display: none; }
Thêm đoạn code sau để bật Javascript cho trình duyệt:
$("img.lazy").show().lazyload();
Sử dụng khi hình ảnh bên trong một thẻ bao với thanh cuộn
Code Css:
#container vị trí { height: 600px; overflow: scroll; }
Code Js:
$("img.lazy").lazyload({ container: $("#container") });
Kiểm soát số lượng hình ảnh được load :
$("img.lazy").lazyload({ failure_limit : 10 });
Đối phó với những hình ảnh "Invisible":
$("img.lazy").lazyload({ skip_invisible : true });
Download toàn bộ source code và ví dụ cụ thể tại đây
Chúc các bạn thành công!
Xem thêm:
- Cách lấy giá trị biến từ một URL bằng Javascript (Get URL Variables)
- Basic jQuery Slider - Slider đơn giản dễ sử dụng trong thiết kế web
- Code popup quảng cáo nằm dưới trình duyệt (popup under)