MENUS
IMAGES
BUTTONS
FORMS
FILTERS
TABLES
MORE
WEBSITE
GRID
GOOGLE MAP
CONVERTERS
HOW TO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Viết chức năng phóng to thumbnail khi hover với CSS3

Chào các bạn, hôm nay mình hướng dẫn các bạn viết chức năng phóng to thumbnail khi hover chuột bằng CSS3. Chức năng này sử dụng các thuộc tính 2D Transform có trong CSS3 dùng để xử lý hiệu ứng di chuyển 2D, ví dụ bạn có thể phóng to, thu nhỏ khi hover chuột vào một phần tử HTML nào đó, ... Chính vì những ưu điểm tuyệt vời đó nên mình sẽ áp dụng nó vào chức năng này. Chúng ta bắt tay vào việc thôi !

1.Ý tưởng thực hiện 

Để mình nói sơ qua về ý tưởng thực hiện của mình. Chức năng phóng to thumbnail khi hover chuột này đang rất phổ biến và được sử dụng rộng rãi trên nhiều website, đặc biệt là các blog, trang tin tức, ... Nó tạo hiệu ứng chuyển động đẹp, bắt mắt giúp người dùng cảm thấy thú vị, vì thế khách sẽ ở lại trang của bạn lâu hơn và thu hút được nhiều người truy cập hơn. Cho nên vì thế mình làm bài viết này để giúp các bạn thực hành một số kiến thức về CSS3, vừa có thể tích hợp chức năng vừa tiện lợi vừa nhỏ gọn này vào trong website của mình.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

2. Xây dựng chức năng

Viết HTML

Đầu tiên các bạn tạo file index.html và copy đoạn code sau :

 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Chức năng phóng to thumbnail khi hover chuột với CSS &bull; Freetuts.net</title>
	<style>
		
	</style>
</head>
<body>
	<div class="thumbnail">
		<img src="thumbnail.jpg" alt="">
	</div>
</body>
</html>

Trong đó :

 

  • .thumbnail là khung chứa thumbnail.
  • Cặp thẻ style là nơi mình sẽ code CSS ở đó (Xem ở bước 2 phần Viết CSS).

Viết CSS

Trước tiên chúng ta sẽ viết CSS cho khung chứa thumbnail trước, các bạn copy đoạn code sau và dán vào bên trong cặp thẻ style :

 

/* Khung chứa thumbnail */
.thumbnail {
	width: 300px;
	height: 200px; 
	overflow: hidden; 
	border: 1px solid #e5e5e5; 
}

Giải thích:

 

  • overflow: hidden; là để thumbnail không tràn ra ngoài khung chứa khi phóng to lên.
  • Còn về phần widthheight các bạn có thể tuỳ chỉnh theo ý thích miễn phù hợp với kích thước của thumbnail.

Tiếp theo là thumbnail, các bạn chèn tiếp nội dung sau vào bên dưới :

 

/* Thumbnail */
.thumbnail img {
	width: 100%; 
	height: 100%;  
	transition-duration: 0.5s;
		/* Safari */
		-webkit-transition-duration: 0.5s; 
		/* Mozilla Firefox */
		-moz-transition-duration: 0.5s; 
		/* Opera */
		-o-transition-duration: 0.5s;
		/* IE 9 */
		-ms-transition-duration: 0.5s;
}

Giải thích:

 

  • Về phần widthheight của thumbnail, mình sẽ để nó là 100% để nó kéo dãn hết khung chứa thumbnail.
  • Thuộc tính transition-duration sẽ chứa giá trị là thời gian(đơn vị s = giây) nó sẽ thiết lập quá trình để phóng to thumbnail mất bao nhiêu thời gian, các bạn có thể chỉnh thời gian tuỳ ý nhưng theo mình 0.5s là OK rồi.

Cuối cùng là phần quan trọng nhất trong bài này, đó chính là viết sự kiện hover chuột vào thumbnail thì sẽ phóng to ảnh lên. Copy và chèn đoạn code sau vào bên dưới :

 

/* Hover chuột vào thumbnail */
.thumbnail img:hover {
	transform: scale(1.2);
		-webkit-transform: scale(1.2); 
		-moz-transform: scale(1.2); 
		-o-transform: scale(1.2);
		-ms-transform: scale(1.2);
	cursor: pointer; 
}

Giải thích: Thuộc tính scale() trong transform được dùng để kéo dãn đối tượng, ở đây mình dùng chỉ số 1.2 cho cả x và y, các bạn cũng có thể thay đổi chỉ số này hoặc các bạn muốn x và y có các chỉ số các nhau thì có thể tuỳ chỉnh theo cấu trúc sau : scale(x, y). Nếu muốn hiểu thêm và xem demo về thuộc tính scale() thì các bạn có thể tham khảo tại Bài 10: Học CSS3 - 2D Transforms.

 

Đây là toàn bộ code của phần này :

 

/* Khung chứa thumbnail */
.thumbnail {
	width: 300px;
	height: 200px; 
	overflow: hidden; 
	border: 1px solid #e5e5e5; 
}

/* Thumbnail */
.thumbnail img {
	width: 100%; 
	height: 100%;  
	transition-duration: 0.5s;
		/* Safari & Google Chrome */
		-webkit-transition-duration: 0.5s; 
		/* Mozilla Firefox */
		-moz-transition-duration: 0.5s; 
		/* Opera */
		-o-transition-duration: 0.5s;
		/* IE 9 */
		-ms-transition-duration: 0.5s;
}
		
/* Hover chuột vào thumbnail */
.thumbnail img:hover {
	transform: scale(1.2);
		/* Safari & Google Chrome */
		-webkit-transform: scale(1.2);
		/* Mozilla Firefox */
		-moz-transform: scale(1.2); 
		/* Opera */
		-o-transform: scale(1.2);
		/* IE 9 */
		-ms-transform: scale(1.2);
	cursor: pointer; 
}

OK ! Giờ các bạn chạy và xem thành quả của mình nhé !

 

3. Lời kết 

Đây là một bài tập nho nhỏ giúp các bạn có thể ôn lại và thực hành về CSS3 Transform 2D, điều đặc biệt hơn là có thể tích hợp thành quả của mình sau bài này vào website, blog của bạn. Chúc các bạn thành công !

Tổng hợp dữ liệu trong bài:

Cùng chuyên mục:

Validate form bằng HTML5

Validate form bằng HTML5

Trước đây chúng ta hay validate form bằng Javascript, nhưng ...

Thẻ aside trong HTML5

Thẻ aside trong HTML5

Mình cũng không rõ người ta tạo ra thẻ này làm gì, nhưng nếu xét…

Thẻ hgroup trong HTML5

Thẻ hgroup trong HTML5

hgroup là một thẻ được thêm vào kể từ phiên bản ...

Thẻ header trong HTML5

Thẻ header trong HTML5

Nếu nhìn qua một trang web được xây dựng bằng HTML5 thì bạn ...

Các thẻ HTML tạo form thu thập dữ liệu

Các thẻ HTML tạo form thu thập dữ liệu

Trước khi bắt đầu thì bạn phải hiểu khái niệm form dữ liệu là ...

Tạo background và đường viền cho thẻ HTML

Tạo background và đường viền cho thẻ HTML

Để tạo màu nền cho một thẻ HTML bất kì thì ta sử dụng thuộc…

Tạo menu một cấp bằng HTML đơn giản

Tạo menu một cấp bằng HTML đơn giản

Để làm menu 1 cấp thì có rất nhiều giải pháp. Bạn có thể sử…

Tạo HTML danh sách bài viết đơn giản

Tạo HTML danh sách bài viết đơn giản

Mục đích mình đưa ra bài tập này là giúp các bạn hiểu được cách…

Tạo bổ cục layout HTML đơn giản

Tạo bổ cục layout HTML đơn giản

Qua bài học này bạn sẽ biết cách tạo một file style riêng để ..

Phân biệt ID và Class trong HTML

Phân biệt ID và Class trong HTML

Mỗi thẻ HTML đều có những thuộc tính riêng và khác nhau. Tuy nhiền ..

Cách dùng thẻ div trong HTML để tạo các khối giao diện

Cách dùng thẻ div trong HTML để tạo các khối giao diện

Thẻ div đóng vai trò rất quan trọng, nó được dùng để tạo ...

Phân biệt thẻ HTML Block và Inline

Phân biệt thẻ HTML Block và Inline

Có bao giờ bạn thắc mắc rằng, tại sao nội dung ...

Thuộc tính style trong HTML

Thuộc tính style trong HTML

Do chúng ta chưa học CSS nên mình sẽ không nói ...

Thẻ title trong HTML

Thẻ title trong HTML

Cách sử dụng thẻ title html ...

Thẻ style trong HTML

Thẻ style trong HTML

Style là một thẻ HTML bình thường, nó có công dụng là xác ...

Thẻ base trong HTML

Thẻ base trong HTML

Cách sử dụng thẻ base trong html ...

Thẻ link trong HTML

Thẻ link trong HTML

Cách sử dụng thẻ html ...

Thẻ meta trong HTML

Thẻ meta trong HTML

Cách sử dụng thẻ meta html ...

Thẻ script trong HTML

Thẻ script trong HTML

Cách sử dụng thẻ script html ...

Thẻ noscript trong HTML

Thẻ noscript trong HTML

Cách sử dụng thẻ noscript html ...

Top