├── .gitignore
├── LICENSE.md
├── README.md
├── angular-velocity.js
├── angular-velocity.min.js
├── angular-velocity.min.map
├── bower.json
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | bower_components
2 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 cgwyllie
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Angular Velocity
3 |
4 | [AngularJS](http://angularjs.org) ngAnimate integration for the [Velocity](http://velocityjs.org) animation library's UI pack plugin.
5 |
6 | ## Getting Started
7 |
8 | ### Install with Bower
9 |
10 | ```
11 | bower install angular-velocity --save
12 | ```
13 |
14 | #### Include Scripts
15 |
16 | ```html
17 |
18 |
19 |
20 | ```
21 |
22 | > N.B. angular-velocity assumes that the Angular core and the additional `ngAnimate` module is loaded. `ngAnimate` can be found in the AngularJS 'additional modules'.
23 |
24 | ### Install with npm
25 |
26 | ```
27 | npm install angular-velocity --save
28 | ```
29 |
30 | #### Include Scripts
31 |
32 | ```html
33 |
34 | ```
35 | > N.B. When installing from npm, it is assumed that VelocityJS will be installed and loaded before Angular Velocity.
36 |
37 | > N.B. angular-velocity assumes that the Angular core and the additional `ngAnimate` module is loaded. `ngAnimate` can be found in the AngularJS 'additional modules'.
38 |
39 | ### Declare Angular Dependency
40 |
41 | ```javascript
42 | angular.module('your-app', ['angular-velocity']);
43 | ```
44 |
45 | ## Usage
46 |
47 | This module declares Angular animations for each of the animations in the UI pack of Velocity following a standardised naming convention.
48 |
49 | From Velocity, the period in a transition or callout name is replaced by a hyphen. For example, `transition.slideUpIn` becomes `velocity-transition-slideUpIn`.
50 |
51 | This animation name is then used as a class name on any element you want to animate with the ngAnimate system, for example:
52 |
53 | ```html
54 |
55 | I've been animated with Velocity and Angular!
56 |
57 | ```
58 |
59 | ### Opposites
60 |
61 | Angular Velocity defines opposite animations for all animations that have a 'directional' component. For every 'In' transition, there is an opposite 'Out' transition that can be used.
62 |
63 | These are defined with the prefix `velocity-opposites-` and will work with ngAnimate's enter & leave, and ngShow & ngHide.
64 |
65 | For example:
66 |
67 | ```html
68 |
69 | I enter with a transition.slideUpIn.
70 | I leave with a transition.slideDownOut.
71 |
72 | ```
73 |
74 | ### Different Enter & Leave Animations
75 |
76 | Angular Velocity defines an enter animation for every 'In' transition, and a leave animation for every 'Out' transition.
77 |
78 | These are defined with the prefixes `velocity-enter-` and `velocity-leave-`, which work with ngEnter & ngShow, and ngLeave & ngHide respectively.
79 |
80 | For example:
81 |
82 | ```html
83 |
84 | I enter with a transition.slideRightIn.
85 | I leave with a transition.slideDownOut.
86 |
87 | ```
88 |
89 | > You do not have to use an enter and a leave transition, they are independednt and you can specify them separaetly if desired.
90 |
91 | ### Velocity Options
92 |
93 | Setting [Velocity options](http://julian.com/research/velocity/#arguments) is possible by defining the `data-velocity-opts` attribute on your animated element. This is an Angular-aware expression, so you can pass objects, bindings, or references to scope objects:
94 |
95 | ```html
96 |
100 | I've been animated with Velocity and Angular!
101 |
102 | ```
103 |
104 | ### Stagger
105 |
106 | Staggering is supported for `ngEnter` and `ngLeave` animations. This works especially well with `ngRepeat`:
107 |
108 | ```html
109 |
110 | -
114 | {{ item }}
115 |
116 |
117 | ```
118 |
119 | > **Complete Function**
120 | >
121 | > The Velocity `complete` callback can be passed in the options and will be executed against your element's scope in a digest cycle.
122 |
123 |
124 | ## Contributing
125 |
126 | Please feel free to fork, push, pull and all that other good Git stuff!
127 |
128 | ### Compression
129 |
130 | ```
131 | uglifyjs angular-velocity.js -c -m -r '$,angular' --source-map angular-velocity.min.map -o angular-velocity.min.js
132 | ```
133 |
134 | # Disclaimer
135 |
136 | This project is not associated officially with either AngularJS or Velocity. It is just a little utility that was quickly thrown together to bridge an animation-shaped gap.
137 |
138 | # Thanks
139 |
140 | - [@albertogasparin](https://github.com/albertogasparin) for allowing registration of custom transitions after script load time
141 | - [@MikaAK](https://github.com/MikaAK) for jQuery dependency removal
142 | - [@tvararu](https://github.com/tvararu) for updates to work with Velocity 1.x
143 | - [@rosslavery](https://github.com/rosslavery) for an example of how to access UI pack animations
144 |
--------------------------------------------------------------------------------
/angular-velocity.js:
--------------------------------------------------------------------------------
1 |
2 | (function () {
3 |
4 | 'use strict';
5 |
6 | var CLASS_ANIM_ADD = 0,
7 | CLASS_ANIM_REMOVE = 1,
8 | Velocity = window.Velocity || (window.jQuery && jQuery.Velocity);
9 |
10 | // Check we have velocity and the UI pack
11 | if (!Velocity || !Velocity.RegisterEffect) {
12 | throw "Velocity and Velocity UI Pack plugin required, please include the relevant JS files. Get Velocity with: bower install velocity";
13 | }
14 |
15 | // Utility to normalize the UI pack transition name
16 | function normalizeTransitionName(animation) {
17 | return animation.replace('.', '-');
18 | }
19 |
20 | // Utility to create class name for a sequence
21 | function animationToClassName(animation) {
22 | return 'velocity-' + normalizeTransitionName(animation);
23 | }
24 |
25 | // Utility to create an opposites class name for a sequence
26 | function animationToOppositesClassName(animation) {
27 | return 'velocity-opposites-' + normalizeTransitionName(animation);
28 | }
29 |
30 | // Utility to create an enter transition class name
31 | function animationToEnterClassName(animation) {
32 | return 'velocity-enter-' + normalizeTransitionName(animation);
33 | }
34 |
35 | // Utility to create a leave transition class name
36 | function animationToLeaveClassName(animation) {
37 | return 'velocity-leave-' + normalizeTransitionName(animation);
38 | }
39 |
40 | // Utility to parse out velocity options
41 | function getVelocityOpts($parse, $el, done) {
42 | var optsAttrVal = $el.attr('data-velocity-opts'),
43 | scope = $el.scope(),
44 | opts = {
45 | complete: done
46 | },
47 | userOpts;
48 |
49 | if (optsAttrVal) {
50 | userOpts = $parse(optsAttrVal)(scope);
51 | angular.extend(opts, userOpts);
52 | if (userOpts.begin) {
53 | opts.begin = function () {
54 | var args = Array.prototype.slice.call(arguments, 0);
55 | scope.$apply(function () {
56 | userOpts.begin.apply(args[0], args);
57 | });
58 | };
59 | }
60 | if (userOpts.complete) {
61 | opts.complete = function () {
62 | var args = Array.prototype.slice.call(arguments, 0);
63 | scope.$apply(function () {
64 | userOpts.complete.apply(args[0], args);
65 | });
66 | scope = null;
67 | done();
68 | };
69 | }
70 | }
71 |
72 | return opts;
73 | }
74 |
75 | // Utility for queueing animations together.
76 | // Staggering isn't natively supported by ngAnimate for JS animations yet, so
77 | // we use the workaround from: http://www.yearofmoo.com/2013/12/staggering-animations-in-angularjs.html
78 | function newAnimationQueue($timeout) {
79 | var queue = {
80 | enter: [],
81 | leave: []
82 | };
83 |
84 | return function queueAllAnimations(event, element, done, onComplete) {
85 | var eventQueue = queue[event];
86 |
87 | eventQueue.push({
88 | element : element,
89 | done : done
90 | });
91 |
92 | eventQueue.timer && $timeout.cancel(eventQueue.timer);
93 | eventQueue.timer = $timeout(function() {
94 | var elms = [],
95 | doneFns = [],
96 | onDone;
97 |
98 | angular.forEach(eventQueue, function(item) {
99 | item && elms.push(item.element);
100 | doneFns.push(item.done);
101 | });
102 |
103 | onDone = function() {
104 | angular.forEach(doneFns, function(fn) {
105 | fn();
106 | });
107 | };
108 |
109 | onComplete(elms, onDone);
110 | queue[event] = [];
111 | }, 10, false);
112 |
113 | return function() {
114 | queue[event] = [];
115 | };
116 | };
117 | }
118 |
119 | function makeCancelFunctionFor($el) {
120 | return function (cancel) {
121 | if (cancel) {
122 | Velocity($el, 'stop');
123 | }
124 | };
125 | }
126 |
127 | // Factory for the angular animation effect function (move animations)
128 | function makeAnimFor(animation, $parse) {
129 | return function ($el, done) {
130 |
131 | var opts = getVelocityOpts($parse, $el, done);
132 |
133 | Velocity($el, animation, opts);
134 |
135 | return makeCancelFunctionFor($el);
136 | };
137 | }
138 |
139 | // Factory for the angular animation effect function (class animations (ng-hide))
140 | function makeClassAnimFor(addOrRemove, addAnim, removeAnim, $parse) {
141 | return function ($el, className, done) {
142 |
143 | var animation = addAnim,
144 | opts;
145 |
146 | if ('ng-hide' === className) {
147 |
148 | animation = (addOrRemove === CLASS_ANIM_ADD) ? removeAnim : animation;
149 |
150 | opts = getVelocityOpts($parse, $el, done);
151 |
152 | Velocity($el, animation, opts);
153 |
154 | return makeCancelFunctionFor($el);
155 | }
156 | };
157 | }
158 |
159 | // Factory for the angular animation effect function (grouped animations)
160 | function makeGroupedAnimFor(animation, event, queueFn, $parse) {
161 | return function ($el, done) {
162 | var cancel;
163 |
164 | // Hide element so it doesn't briefly show whilst queue is built
165 | if (event === 'enter') {
166 | $el.css('opacity', 0);
167 | }
168 |
169 | cancel = queueFn(event, $el[0], done, function(elements, onQueueDone) {
170 | var opts = getVelocityOpts($parse, $el, onQueueDone);
171 | Velocity(elements, animation, opts);
172 | });
173 |
174 | return function onClose(cancelled) {
175 | cancelled && cancel();
176 | };
177 | };
178 | }
179 |
180 | // Factory for making animations
181 | function makeAngularAnimationFor(animation) {
182 | return ['$timeout', '$parse', function ($timeout, $parse) {
183 |
184 | var queueFn = newAnimationQueue($timeout);
185 |
186 | return {
187 | 'enter': makeGroupedAnimFor(animation, 'enter', queueFn, $parse),
188 | 'leave': makeGroupedAnimFor(animation, 'leave', queueFn, $parse),
189 | 'move': makeAnimFor(animation, $parse),
190 | 'addClass': makeClassAnimFor(CLASS_ANIM_ADD, animation, animation, $parse),
191 | 'removeClass': makeClassAnimFor(CLASS_ANIM_REMOVE, animation, animation, $parse)
192 | };
193 | }];
194 | }
195 |
196 | // Factory for making enter/show animations
197 | function makeEnterAnimationFor(animation) {
198 | return ['$timeout', '$parse', function ($timeout, $parse) {
199 |
200 | var queueFn = newAnimationQueue($timeout);
201 |
202 | return {
203 | 'enter': makeGroupedAnimFor(animation, 'enter', queueFn, $parse),
204 | 'removeClass': makeClassAnimFor(CLASS_ANIM_REMOVE, animation, animation, $parse)
205 | };
206 | }];
207 | }
208 |
209 | // Factory for making leave/hide animations
210 | function makeLeaveAnimationFor(animation) {
211 | return ['$timeout', '$parse', function ($timeout, $parse) {
212 |
213 | var queueFn = newAnimationQueue($timeout);
214 |
215 | return {
216 | 'leave': makeGroupedAnimFor(animation, 'leave', queueFn, $parse),
217 | 'addClass': makeClassAnimFor(CLASS_ANIM_ADD, animation, animation, $parse)
218 | };
219 | }];
220 | }
221 |
222 | // Factory for making opposite animations
223 | function makeOppositesAnimationFor(animation) {
224 | return ['$timeout', '$parse', function ($timeout, $parse) {
225 | var queueFn = newAnimationQueue($timeout);
226 |
227 | var opp = animation.replace('In', 'Out');
228 |
229 | if (opp.indexOf('Down') > -1) {
230 | opp = opp.replace('Down', 'Up');
231 | }
232 | else if (opp.indexOf('Up') > -1) {
233 | opp = opp.replace('Up', 'Down');
234 | }
235 | else if (opp.indexOf('Left') > -1) {
236 | opp = opp.replace('Left', 'Right');
237 | }
238 | else if (opp.indexOf('Right') > -1) {
239 | opp = opp.replace('Right', 'Left');
240 | }
241 |
242 | return {
243 | 'enter': makeGroupedAnimFor(animation, 'enter', queueFn, $parse),
244 | 'leave': makeGroupedAnimFor(opp, 'leave', queueFn, $parse),
245 | 'move': makeAnimFor(animation, $parse),
246 | 'addClass': makeClassAnimFor(CLASS_ANIM_ADD, animation, opp, $parse),
247 | 'removeClass': makeClassAnimFor(CLASS_ANIM_REMOVE, animation, opp, $parse)
248 | };
249 | }];
250 | }
251 |
252 | // Use the factories to define animations for all velocity's sequences
253 | angular
254 | .module('angular-velocity', ['ngAnimate'])
255 | .config(['$animateProvider', function ($animateProvider) {
256 | // Use the factories to define animations for all velocity's sequences
257 | angular.forEach(Velocity.Redirects, function (_, animation) {
258 | var IN = 'In',
259 | OUT = 'Out',
260 | selector = '.' + animationToClassName(animation),
261 | oppositesSelector = '.' + animationToOppositesClassName(animation),
262 | enterSelector, leaveSelector;
263 |
264 | $animateProvider.register(selector, makeAngularAnimationFor(animation));
265 |
266 | if (animation.substr(-2) === IN) {
267 | enterSelector = '.' + animationToEnterClassName(animation);
268 | $animateProvider.register(oppositesSelector, makeOppositesAnimationFor(animation));
269 | $animateProvider.register(enterSelector, makeEnterAnimationFor(animation));
270 | }
271 | else if (animation.substr(-3) === OUT) {
272 | leaveSelector = '.' + animationToLeaveClassName(animation);
273 | $animateProvider.register(leaveSelector, makeLeaveAnimationFor(animation));
274 | }
275 | });
276 | }]);
277 |
278 | })();
279 |
--------------------------------------------------------------------------------
/angular-velocity.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";function e(e){return e.replace(".","-")}function n(n){return"velocity-"+e(n)}function t(n){return"velocity-opposites-"+e(n)}function r(n){return"velocity-enter-"+e(n)}function i(n){return"velocity-leave-"+e(n)}function o(e,n,t){var r,i=n.attr("data-velocity-opts"),o=n.scope(),u={complete:t};return i&&(r=e(i)(o),angular.extend(u,r),r.begin&&(u.begin=function(){var e=Array.prototype.slice.call(arguments,0);o.$apply(function(){r.begin.apply(e[0],e)})}),r.complete&&(u.complete=function(){var e=Array.prototype.slice.call(arguments,0);o.$apply(function(){r.complete.apply(e[0],e)}),o=null,t()})),u}function u(e){var n={enter:[],leave:[]};return function(t,r,i,o){var u=n[t];return u.push({element:r,done:i}),u.timer&&e.cancel(u.timer),u.timer=e(function(){var e,r=[],i=[];angular.forEach(u,function(e){e&&r.push(e.element),i.push(e.done)}),e=function(){angular.forEach(i,function(e){e()})},o(r,e),n[t]=[]},10,!1),function(){n[t]=[]}}}function a(e){return function(n){n&&y(e,"stop")}}function c(e,n){return function(t,r){var i=o(n,t,r);return y(t,e,i),a(t)}}function l(e,n,t,r){return function(i,u,c){var l,f=n;return"ng-hide"===u?(f=e===g?t:f,l=o(r,i,c),y(i,f,l),a(i)):void 0}}function f(e,n,t,r){return function(i,u){var a;return"enter"===n&&i.css("opacity",0),a=t(n,i[0],u,function(n,t){var u=o(r,i,t);y(n,e,u)}),function(e){e&&a()}}}function s(e){return["$timeout","$parse",function(n,t){var r=u(n);return{enter:f(e,"enter",r,t),leave:f(e,"leave",r,t),move:c(e,t),addClass:l(g,e,e,t),removeClass:l(m,e,e,t)}}]}function p(e){return["$timeout","$parse",function(n,t){var r=u(n);return{enter:f(e,"enter",r,t),removeClass:l(m,e,e,t)}}]}function v(e){return["$timeout","$parse",function(n,t){var r=u(n);return{leave:f(e,"leave",r,t),addClass:l(g,e,e,t)}}]}function d(e){return["$timeout","$parse",function(n,t){var r=u(n),i=e.replace("In","Out");return i.indexOf("Down")>-1?i=i.replace("Down","Up"):i.indexOf("Up")>-1?i=i.replace("Up","Down"):i.indexOf("Left")>-1?i=i.replace("Left","Right"):i.indexOf("Right")>-1&&(i=i.replace("Right","Left")),{enter:f(e,"enter",r,t),leave:f(i,"leave",r,t),move:c(e,t),addClass:l(g,e,i,t),removeClass:l(m,e,i,t)}}]}var g=0,m=1,y=window.Velocity||window.jQuery&&jQuery.Velocity;if(!y||!y.RegisterEffect)throw"Velocity and Velocity UI Pack plugin required, please include the relevant JS files. Get Velocity with: bower install velocity";angular.module("angular-velocity",["ngAnimate"]).config(["$animateProvider",function(e){angular.forEach(y.Redirects,function(o,u){var a,c,l="In",f="Out",g="."+n(u),m="."+t(u);e.register(g,s(u)),u.substr(-2)===l?(a="."+r(u),e.register(m,d(u)),e.register(a,p(u))):u.substr(-3)===f&&(c="."+i(u),e.register(c,v(u)))})}])}();
2 | //# sourceMappingURL=angular-velocity.min.map
--------------------------------------------------------------------------------
/angular-velocity.min.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["angular-velocity.js"],"names":["normalizeTransitionName","animation","replace","animationToClassName","animationToOppositesClassName","animationToEnterClassName","animationToLeaveClassName","getVelocityOpts","$parse","$el","done","userOpts","optsAttrVal","attr","scope","opts","complete","angular","extend","begin","args","Array","prototype","slice","call","arguments","$apply","apply","newAnimationQueue","$timeout","queue","enter","leave","event","element","onComplete","eventQueue","push","timer","cancel","onDone","elms","doneFns","forEach","item","fn","makeCancelFunctionFor","Velocity","makeAnimFor","makeClassAnimFor","addOrRemove","addAnim","removeAnim","className","CLASS_ANIM_ADD","makeGroupedAnimFor","queueFn","css","elements","onQueueDone","cancelled","makeAngularAnimationFor","move","addClass","removeClass","CLASS_ANIM_REMOVE","makeEnterAnimationFor","makeLeaveAnimationFor","makeOppositesAnimationFor","opp","indexOf","window","jQuery","RegisterEffect","module","config","$animateProvider","Redirects","_","enterSelector","leaveSelector","IN","OUT","selector","oppositesSelector","register","substr"],"mappings":"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","file":"angular-velocity.min.js"}
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-velocity",
3 | "version": "0.3.2",
4 | "main": "angular-velocity.min.js",
5 | "authors": [
6 | "Christopher Wyllie "
7 | ],
8 | "description": "AngularJS ngAnimate integration for the Velocity animation library UI pack plugin",
9 | "keywords": [
10 | "AngularJS",
11 | "angular",
12 | "ngAnimate",
13 | "Velocity",
14 | "animation"
15 | ],
16 | "license": "MIT",
17 | "ignore": [
18 | "**/.*",
19 | "node_modules",
20 | "bower_components",
21 | "test",
22 | "tests"
23 | ],
24 | "dependencies": {
25 | "angular-animate": "~1.3.1",
26 | "angular": "~1.3.1",
27 | "velocity": "~1.2.0"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-velocity",
3 | "version": "0.3.2",
4 | "description": "AngularJS ngAnimate integration for the Velocity animation library UI pack plugin",
5 | "main": "angular-velocity.min.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/cgwyllie/angular-velocity.git"
12 | },
13 | "keywords": [
14 | "AngularJS",
15 | "angular",
16 | "ngAnimate",
17 | "VelocityJS",
18 | "animation"
19 | ],
20 | "author": "Christopher Wyllie",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/cgwyllie/angular-velocity/issues"
24 | },
25 | "homepage": "https://github.com/cgwyllie/angular-velocity",
26 | "dependencies": {
27 | }
28 | }
29 |
--------------------------------------------------------------------------------