CSS3 transform - transition

19/12/2012 22:02
Bài này xin giới thiệu về 2 bộ thuộc tính rất tuyệt vời của CSS3 là transform và transition đồng thời là một ví dụ gallery nhỏ với sự kết hợp của 2 bộ thuộc tính này.

CSS3 transform transition

 

Transform

Đây là thuộc tính với một số giá trị cung cấp một số chức năng thao tác với đối tượng như:

  • scale: co giãn đối tượng
  • rotate: xoai đối tượng
  • skew: bóp méo đối tượng
  • translate: dịch chuyển đối tượng

Transition

Thuộc tính này giúp bạn tạo hoạt hình cho một thuộc tính nào đó đó là thuộc tính dạng shorthand của các thuộc tính như:

  • transition-property: thuộc tính sẽ áp dụng
  • transition-duration: thời gian hoàn thành hiệu ứng tính bằng milliseconds
  • transition-timing-function: xác định kiểu thời gian thực hiện hiệu ứng bao gồm một số giá trị như linear, ease, ease-in, ease-out, ease-in-out, và cubic-bezier(n,n,n,n) kiểu thời gian tùy chỉnh với n nhận giá trị từ 0 - 1
  • transition-delay: thời gian dừng trước khi bắt đầu hiệu ứng tính bằng milliseconds

Ví dụ photo gallery

HTML code

Chuẩn bị một số hình ảnh với kích thước là 250px - 180px

01 ul>
02   li><a href="#"><img src="images/1.jpg" />a>li>
03   li><a href="#"><img src="images/2.jpg" />a>li>
04   li><a href="#"><img src="images/3.jpg" />a>li>
05   li><a href="#"><img src="images/4.jpg" />a>li>
06   li><a href="#"><img src="images/5.jpg" />a>li>
07   li><a href="#"><img src="images/6.jpg" />a>li>
08   li><a href="#"><img src="images/7.jpg" />a>li>
09   li><a href="#"><img src="images/8.jpg" />a>li>
10   li><a href="#"><img src="images/9.jpg" />a>li>
11 /ul>

CSS code

01 ul{
02   margin:50px auto;
03   list-style:none;
04   min-height: 400px
05 }
06 ul li{
07   display:inline-block;
08   float:left;
09   padding:10px;
10   position: relative;
11   width: 210px;
12   height: 154px;
13 }
14 li a{
15   position: absolute; left: 0; top: 0;
16   padding:5px;
17   border:1px solid #ccc;
18   display:block;
19   background: #fff;
20   background:rgba(255,255,255,0.5);
21 }
22 ul img{width: 200px; border: none;}
23 /*------- Css3 transform --------*/
24 li a:hover{
25   z-index:999;
26   transform: scale(1.5);
27   -ms-transform: scale(1.5); /* Cho IE9 */
28   -webkit-transform: scale(1.5); /* Chrome và Safari */
29   -moz-transform: scale(1.5); /* Firefox */
30   -o-transform:scale(1.5); /* Opera */
31 }
32 /*------- Css3 Transition --------*/
33 a{
34   transition: transform 0.5s ease;
35   -webkit-transition: -webkit-transform 0.5s ease; /* Chrome và Safari */
36   -moz-transition: -moz-transform 0.5s ease; /* Firefox 4 */
37   -o-transition: -o-transform 0.5s ease; /* Opera */
38 }

Ở đoạn code trên với sự kết hợp giữa thuộc tính transform và transition thì kết quả đạt được là hình thumnail trong gallery sẽ có hiệu ứng tăng kích thước lên 1.5 lần khi người dùng hover chuột lên nó. Vì mỗi trình duyệt sẽ có cách gọi thuộc tính riêng nên chúng ta phải gọi thuộc tính làm nhiều lần tương ứng với mỗi loại trình duyệt. Demo

Các tin tức khác