Tết sắp đến rồi, làm cái gì cho nó có không khí Tết không khí xuân nhỉ? Nhớ tầm này năm ngoái, đi đâu cũng nghe thấy Con bướm xuân remix của Hồ Quang Hiếu, rộn ràng lắm. Năm nay MyLop.BanMai.Info sẽ cho ra mắt Con bướm xinh phiên bản CSS3, hứa hẹn sẽ rộn ràng không kém, các bạn chờ nha! 😀
CSS3 3D Butterfly – Con bướm xinh phiên bản CSS3
Xem bản Con bướm xinh Web Screensaver Download Files
Bước 0: Chuẩn bị
Bạn chỉ cần chuẩn bị một ảnh nền mùa xuân, thật đẹp vào:
Và một nửa cánh bướm như thế này:
Rồi, hãy đưa bướm cho tôi, việc của bạn đã xong, tất cả các việc còn lại để tôi lo!
Bước 1: Viết code HTML
Cực kỳ đơn giản, chỉ cần 4 thẻ <div>
như thế này:
1 2 3 4 5 6 7 8 | <div id="container"> <div id="butterfly"> <div id="leftwing"> </div> <div id="rightwing"> </div> </div> </div> |
Chúng ta sẽ ghép 2 nửa cánh bướm #leftwing
và #rightwing
thành một con bướm #butterfly
.
Bước 2: Viết code CSS định vị trí bướm
CSS cho #container
phía ngoài cùng:
1 2 3 4 5 6 7 8 9 | div#container{ background: url(../img/wiese.jpg) no-repeat; background-size: 100% 100%; perspective: 600px; perspective-origin: 0% 0%; width: 100%; height: 100%; color: white; margin: 0 auto; } |
CSS cho con bướm #butterfly
bao ngoài:
1 2 3 4 5 6 7 8 9 10 11 12 | div#butterfly{ position: absolute; left: 0px; top: 0px; width: 366px; /* Bề rộng = 2 nửa cánh bướm */ height: 208px; /* Chiều cao bướm */ transform: rotate3d(0, 1, 0, 0deg) scale3d(0.5, 0.5, 0.5); transform-origin: 80% 50%; transform-style: preserve-3d; animation: butterflyAni 5s linear infinite; } |
Con bướm #butterfly
sẽ bay một vòng tròn nhờ vào hoạt hình butterflyAni được mô tả ở bước sau.
CSS cho 2 cánh bướm #leftwing và #rightwing:
1 2 3 4 5 6 7 8 9 10 | div#leftwing{ position: absolute; left:0px; top:0px; width: 178px; height: 208px; background: url(../img/wing.png) no-repeat; transform: rotateX(90deg) rotate3d(0, 1, 0, 0deg); transform-origin: top right; animation: leftWingAni 0.2s linear infinite; } |
Cánh bướm trái #leftwing
sẽ vỗ quanh nó nhờ vào hoạt hình leftWingAni được mô tả ở bước sau.
1 2 3 4 5 6 7 8 9 10 | div#rightwing { position: absolute; left:178px; top:0px; width: 178px; height: 208px; background: url(../img/wing.png) no-repeat; transform: rotateX(90deg) translate3d(-178px, 0px, 0px) rotate3d(0, 1, 0, 180deg) ; transform-origin: top right; animation: rightwingani 0.2s linear infinite; } |
Cánh bướm phải #rightwing
sẽ vỗ quanh nó nhờ vào hoạt hình rightWingAni được mô tả ở bước sau.
Bước 3: CSS để tạo các hoạt hình
Tạo hoạt hình butterflyAni để cả con bướm #butterfly
bay một vòng tròn:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @-keyframes butterflyAni { from { transform: rotate3d(0, 1, 0, 0deg) scale3d(0.5, 0.5, 0.5) translate3d(-300px, 350px, 0px); } 25% { transform: rotate3d(0, 1, 0, -90deg) scale3d(0.5, 0.5, 0.5) translate3d(-300px, 350px, 0px); } 50% { transform: rotate3d(0, 1, 0, -180deg) scale3d(0.5, 0.5, 0.5) translate3d(-300px, 350px, 0px); } 75% { transform: rotate3d(0, 1, 0, -270deg) scale3d(0.5, 0.5, 0.5) translate3d(-300px, 350px, 0px); } to { transform: rotate3d(0, 1, 0, -360deg) scale3d(0.5, 0.5, 0.5) translate3d(-300px, 350px, 0px); } } |
Tạo hoạt hình leftWingAni để cánh bướm trái #leftwing
vỗ cánh:
1 2 3 4 5 6 7 8 9 10 11 | @-keyframes leftWingAni { from { transform:rotateX(90deg) rotate3d(0, 1, 0, 0deg); } 50% { transform:rotateX(90deg) rotate3d(0, 1, 0, 80deg); } to{ transform:rotateX(90deg) rotate3d(0, 1, 0, 00deg); } } |
Tạo hoạt hình rightWingAni để cánh bướm phải #rightwing
vỗ cánh:
1 2 3 4 5 6 7 8 9 10 11 | @-keyframes rightWingAni { from { transform:rotateX(90deg) translate3d(-178px, 0px, 0px) rotate3d(0, 1, 0, 180deg); } 50% { transform:rotateX(90deg) translate3d(-178px, 0px, 0px) rotate3d(0, 1, 0, 100deg); } to { transform:rotateX(90deg) translate3d(-178px, 0px, 0px) rotate3d(0, 1, 0, 180deg); } } |
Vậy là xong rồi đấy, tận hưởng thành quả nhé:
Bạn có thể xem bản con bướm bay một vòng tròn mà cánh không vỗ để hiểu rõ vấn đề hơn:
Xem bản không vỗ cánh Download Files
Để ngắn gọn, xúc tích, dễ hiểu, các đoạn code trên đã bỏ qua việc cấu hình để chạy được trên tất cả các trình duyệt. Bạn tải file về tìm hiểu kỹ hơn nhé, đó là bản đầy đủ nhất
Bài này rất dễ hiểu về ý tưởng, dễ làm nếu các bạn chỉ copy, paste, chứ nếu các bạn tự code thì chắc là xác định cũng căng đấy! Chúc các bạn làm thực hành thành công!
Theo: eleqtriq.com
P.S: Khi xem Demo, các bạn nhấn F11 để xem toàn màn hình nhé, như vậy là chúng ta đã có một màn hình chờ Con bướm xinh đón Tết rộn ràng rồi đấy!
Cheers,
Lục Đức Thành
Latest posts by Lục Đức Thành (see all)
- Cách hiển thị lượt truy cập ra ngoài front-end - 12/02/2023
- Sửa lỗi “không start được MySQL trong XAMPP” - 21/06/2020
- WordPress 5 có gì mới? - 23/12/2018
- Sublime Text 3 Portable Windows 64 bit - 11/12/2017
- Kỹ thuật nhúng font vào web và WordPress Theme - 12/11/2017