AngularJS อนิมาชั่น
- หน้าก่อนหน้า AngularJS การเชื่อมโยง
- หน้าต่อไป AngularJS รูต์
ด้วยความช่วยเหลือของ CSS จะมีการเปลี่ยนแปลงอะนิเมชันจาก AngularJS:
อะนิเมชันคืออะไร?
อะนิเมชันคือการเปลี่ยนแปลงของ HTML element ที่ทำให้คุณมีความหวาดหวั่นว่ามันมีการเคลื่อนไหว:
ตัวอย่าง
เลือกตัวเลือกเพื่อซ่อน DIV:
<body ng-app="ngAnimate"> ซ่อน DIV:<input type="checkbox" ng-model="myCheck"> <div ng-hide="myCheck"></div> </body>
โปรแกรมควรไม่มีอะนิเมชันมากเกินไป แต่อะนิเมชันบางอย่างสามารถทำให้โปรแกรมง่ายต่อการเข้าใจได้:
ฉันต้องการอะไร?
เพื่อให้โปรแกรมของคุณเตรียมพร้อมสำหรับอะนิเมชัน คุณต้องรวมไลบรารี AngularJS Animate:
<script src="https://cdn.staticfile.net/angular.js/1.6.9/angular-animate.js"></script>
หลังจากนั้น คุณจะต้องเรียกใช้โมดูลในแอปพลิเคชันของคุณ ngAnimate
Module:
<body ng-app="ngAnimate">
หรือ ถ้าแอปพลิเคชันของคุณมีชื่อ โปรดใส่ ngAnimate
เพิ่มเป็น Dependency ของโมดูลในแอปพลิเคชัน:
ตัวอย่าง
<body ng-app="myApp"> <h1>ซ่อน DIV:<input type="checkbox" ng-model="myCheck"></h1> <div ng-hide="myCheck"></div> <script> var app = angular.module('myApp', ['ngAnimate']); </script>
อะไรคืองานของ ngAnimate?
ngAnimate
Module จะเพิ่มและลบคลาส
ngAnimate
Module จะไม่ทำให้ Element HTML มี animation แต่เมื่อ ngAnimate
ในขณะที่สังเกตเห็นเหตุการณ์บางอย่าง (เช่นการซ่อนหรือแสดง HTML Element) ตัวเลือกดังกล่าวจะได้รับคลาสที่ถูกกำหนดก่อนเพื่อใช้ทำ animation。
Directives ที่เพิ่มหรือลบคลาสใน AngularJS รวมถึง:
ng-show
ng-hide
ng-class
ng-view
ng-include
ng-repeat
ng-if
ng-switch
ng-show
และ ng-hide
Directives ที่เพิ่มหรือลบ ng-hide
ค่าคลาส
Directives อื่นๆ จะเพิ่ม ng-enter
ค่าคลาส และจะเพิ่ม ng-leave
Properties
เมื่อ Element HTML มีการเปลี่ยนตัวตำแหน่งng-repeat
Directives ยังจะเพิ่ม ng-move
ค่าคลาส
นอกจากนี้ ในระหว่าง animation ระบบ HTML Element จะมีค่าคลาสกลุ่มหนึ่ง และจะถูกลบเมื่อ animation จบ ตัวอย่างเช่น:ng-hide
ได้รับค่าคลาสเหล่านี้โดยใช้ Directives:
ng-animate
ng-hide-animate
ng-hide-add
(ถ้าต้องการซ่อน Element)ng-hide-remove
(ถ้าต้องการแสดง Element)ng-hide-add-active
(ถ้าต้องการซ่อน Element)ng-hide-remove-active
(ถ้าต้องการแสดง Element)
การทำ animation ด้วย CSS
เราสามารถใช้ CSS Transition หรือ CSS Animation เพื่อเพิ่ม animation ให้กับ HTML Element โดยสรุป หลักสูตรนี้จะแสดงให้เห็นทั้งสองอย่าง。
เพื่อได้รับข้อมูลเกี่ยวกับ CSS Animation มากยิ่งขึ้น โปรดเรียนหลักสูตร CSS Transition และ CSS Animation ของเรา。
CSS Transition
CSS Transition อนุญาตให้คุณเปลี่ยนค่าของ CSS Property โดยที่มีการเปลี่ยนตัวเรียบร้อยในระยะเวลาที่กำหนดมาก่อน:
ตัวอย่าง
เมื่อ DIV อิเลเมนต์ได้รับ .ng-hide
เมื่อมีการสลับสถานะ การเปลี่ยนแปลงจะใช้เวลา 0.5 วินาที ความสูงจะเปลี่ยนตัวเรียบร้อยจาก 100px ไปที่ 0:
@keyframes myChange { div { transition: all linear 0.5s; background-color: lightblue; height: 100px; } .ng-hide { height: 0; } </style>
CSS อนิมาชั่น
CSS อนิมาชั่น อนุญาตให้คุณเปลี่ยนค่าของ CSS ได้โดยทันทีโดยเรียบร้อยตลอดระยะเวลาที่กำหนด
ตัวอย่าง
เมื่อ DIV อิเลเมนต์ได้รับ .ng-hide
<style>
@keyframes myChange { from { to { height: 100px; } height: 0; } } div { height: 100px; background-color: lightblue; } div.ng-hide { animation: 0.5s myChange; } </style>
- หน้าก่อนหน้า AngularJS การเชื่อมโยง
- หน้าต่อไป AngularJS รูต์