fbpx

Hướng dẫn sử dụng jQuery Lazy Load

Chắc hẳn trong quá trình xây dựng Website, ít nhiều các bạn cũng từng nghĩ làm cách nào để có thể giảm tải bớt băng thông cho việc load hình ảnh trên Website, nhất là những trang người dùng chỉ load vào xem nội dung rồi vội vàng ra đi. Như thế thì chúng ta vô tình lại tốn băng thông nhưng lại không giúp ích gì được cho chúng ta. Vậy làm sao để hạn chế điều này? Có cách nào có thể giúp người dùng cuộn trang tới đâu, hình ảnh load tới đó không? Câu trả lời là có và tôi sẽ giới thiệu với các bạn đến với jQuery Lazy Load Plugin để có thể thực hiện được việc này.

Giới thiệu và cài đặt

Tác giả: Mika Tuupola

Website: http://www.appelsiini.net/projects/lazyload

jQuery Lazy Load được xây dựng giúp người dùng cuộn tới đâu, load hình tới đó giúp cho việc giảm tải băng thông cho Website.

Để có thể cài đặt jQuery Lazy Load các bạn cần thực hiện các bước sau:

  1. Truy cập vào https://github.com/tuupola/jquery_lazyload và nhấn vào nút “Download ZIP”.
  2. Giải nén file vừa tải về, chúng ta sẽ được cấu trúc thư mục như sau:

Cấu trúc thư mục

  1. Các bạn hãy vào folder “jquery_lazyload-master” và sau đó copy file “jquery.lazyload.min.js”.
  2. Sau đó, các bạn hãy bỏ vào folder chứa website mà chúng ta xây dựng.
  3. Tiến hành thêm thư viện vào trong website của chúng ta, nhưng các bạn cũng cần phải tải thư viện jQuery tại http://jquery.com về trước nhé:

Chèn jQuery Lazy Load

  1. Cài đặt hoàn tất

Sử dụng

Đầu tiên, để sử dụng thư viện này, các bạn hãy chuẩn bị cho tôi 1,2 hoặc nhiều tấm hình trở lên. Cụ thể ở đây tôi sẽ có tấm hình “demo.gif”:

Tiếp theo, chúng ta sẽ load tấm hình đó vào HTML và hãy nhân bản lên thành nhiều tấm để tiện cho việc chúng ta tập cách sử dụng:

	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />

Ở đoạn code trên, nếu các bạn để ý thì thay vì chúng ta dùng thẻ “<img>” và có thuộc tính “src” để chỉ rõ đường dẫn của tấm hình thì nay nó đã được thay thế bằng “data-original” và cách gán đường dẫn giống với thuộc tínhsrc”:

4

Các bạn cũng nên định nghĩa một tên class để tiện cho việc tìm đến những tấm ảnh này thông qua jQuery. Sau đó, các bạn hãy dùng thẻ “<script>” để tiến hành sử dụng thư viện jQuery Lazy Load:

	<script type="text/javascript">
		$(function() {
		    $("img.ten-lop-ban-tu-dat").lazyload({
		    	effect : "fadeIn"
		    });
		});
	</script>

Sau khi thực hiện đoạn code này, chúng ta đã thành công trong việc sử dụng thư viện rồi đấy. Thông qua việc sử dụng phương thức “lazyload()” ở thẻ “<img>” mà bạn chỉ định. Và đối số trong phương thức “lazyload()” chính là một đối tượng chứa các tính năng mà bạn có thể tùy biến theo hướng dẫn của tác giả Plugin jQuery Lazy Load.

Và đoạn code đầy đủ của nó sẽ như sau:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>Test</title>	
	<style type="text/css">
	img {
		float:left;
		width: 500px;
		height: 500px;
	}
	</style>
	<script type="text/javascript" src="jquery-1.11.3.min.js"></script>	
	<script type="text/javascript" src="jquery.lazyload.min.js"></script>
</head>
<body>
	<img src="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />
	<img data-original="demo.gif" class="ten-lop-ban-tu-dat" />	
	<script type="text/javascript">
		$(function() {
		    $("img.ten-lop-ban-tu-dat").lazyload({
		    	effect : "fadeIn"
		    });
		});
	</script>
</body>
</html>

Một số tính năng có thể sử dụng trong jQuery Lazy Load

threshold Load trước số pixel chỉ định
event Thực hiện load hình ảnh khi sự kiện chỉ định được gọi
effect Hiệu ứng load hình ảnh
skip_invisible Bỏ qua các hình ảnh không được hiển thị trong viewport
failure_limit Chạy vòng lặp kiểm tra hình ảnh load bị lỗi với số lần quy định

Demo cách sử dụng gộp các tính năng:

	<script type="text/javascript">
		$(function() {
		    $("img.ten-lop-ban-tu-dat").lazyload({
		    	effect : "fadeIn",
		    	threshold: 100,
		    	event : "mouseover"
		    });
		});
	</script>

Trên đây chỉ thống kê ngắn gọn các tính năng của jQuery Lazy Load, chắc chắn vẫn chưa đầy đủ ở Website của tác giả, mong bạn đọc thông cảm. Bạn có thể tải file demo-jquery-lazy-load tại đây.

 

(Visited 22,643 times, 1 visits today)

Leave a Reply

Your email address will not be published. Required fields are marked *