Chủ đề nổi bật
03/08/2018, 09:37

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

DOWNLOAD Chào ...

DOWNLOAD

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.

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 {
	awidth: 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 awidth và height 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 {
	awidth: 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 awidth và height 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 {
	awidth: 300px;
	height: 200px; 
	overflow: hidden; 
	border: 1px solid #e5e5e5; 
}

/* Thumbnail */
.thumbnail img {
	awidth: 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 !

-------------------#####-------------------

ZOOM IN THUMBNAIL WHEN HOVER MOUSE WITH CSS3

-------------------#####-------------------

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan
Mới nhất

CSS căn bản

BÀI KẾ SAU BÀI KẾ TIẾP

CSS Responsive Web Design

Xin giới thiệu với các bạn series tự học CSS Responsive, đây là một series tự mình biên soạn và viết theo khả năng của mình. Trong series này mình sẽ giới thiệu tất cả các kiến thức cần thiết để học responsive, từ cách sử dụng media cho đến Javascript và từ đó sẽ đưa ra một bài tập nho nhỏ để tự ...

CSS3 căn bản

BÀI KẾ SAU BÀI KẾ TIẾP

Tạo hiệu ứng HTML5&CSS3

DANH SÁCH BÀI HỌC Hiệu ứng bóng đổ với thuộc tính box-shadow của CSS3

Bài 10: Học CSS3 - 2D Transforms

CSS3 2D Transforms là những thuộc tính dùng để xử lý hiệu ứng di chuyển 2D ( không gian hai chiều ), ví dụ bạn có thể dụng CSS3 để quay một thẻ ...

Bài 09: Học CSS3 - Sử dụng @fonf-face

Trước đây nếu bạn muốn website chạy những font chữ độc và lạ mà trên máy tính của Client không cài đặt thì đó là điều không thể, trừ khi client ...

Bài 07: Học CSS3 - Text Shadow - Box Shadow

Thêm một sự bất ngờ nữa dành cho những bạn yêu mến lập trình CSS3 đó là tạo hiệu ứng shadow mà chỉ có CSS3 mới làm được. Với CSS3 bạn có thể ...

Bài 08: Học CSS3 - Xử lý Text

CS3 hỗ trợ một số thuộc tính giúp việc xử lý text hiệu quả hơn. Nếu trước đây chúng ta gặp khó khăn trong việc xử lý một từ quá dài và bị tràn ...

Bài 05: Học CSS3 - Định dạng màu sắc

CSS3 hỗ trợ nhận diện color bằng tên màu , mã hexadecimal và mã RGB . Trong bài này chúng ta sẽ tìm hiểu một số định dạng mã màu thường sử ...

Bài 06: Học CSS3 - Gradient Background

Trong Photoshop bạn có thể tạo một hình ảnh với nhiều màu sắc và chúng trộn lẫn với nhau nhìn rất bắt mắt như hình dưới đây. Thì bạn hoàn ...