Angular directives to configure velocity.js keyframe animations on an element
0 people use it
Author: 6976199?v=3 thisissoon
Submitted by: 7836746?v=3 edwardoparearyee

Angular Velocity

Build Status Coverage Status

These velocity directives configure velocity.js keyframe animations on an element.


Basic Usage

The data-keyframes attribute takes an array of velocity.js animation keyframes. See the Velocity Docs for available properties and options.

Animation Groups

The sn-velocity-group directive can be used to animate a number of elements together.

The data-keyframes attribute of sn-velocity-group takes an object of element identifiers. Each key in the object should hold an array of velocity.js animation keyframes as per the sn-velocity directive.

This project structure is based on the angular-seed application skeleton for a typical AngularJS web app.

The project is preconfigured to install the Angular framework and a bunch of development and testing tools for instant web development gratification.

Getting Started

To get you started you can simply clone the repository and install the dependencies:

Clone Angular Velocity repository

Clone the angular-velocity repository using git:

Install Dependencies

We have two kinds of dependencies in this project: tools and angular framework code. The tools help us manage and test the application.

The following tools require super user privileges so you will need to install them separately like so:

We have preconfigured npm to automatically run bower so we can simply do:

Behind the scenes this will also call bower install. You should find that you have two new folders in your project.

  • node_modules - contains the npm packages for the tools we need
  • app/components - contains the angular framework files and other libraries

Install Libraries

We install our frontend libraries via bower, a client-side code package manager.

All frontend depenancies such as angular will be installed when running npm install. To manually install all dependencies run:

To install a new library such as bootstrap we can simply do:

And this will download the bootstrap package from bower and also update the bower.json file to include that package. You will then need to add the script tag to app/index.html like so:

Run the Application

We have preconfigured the project with a simple development web server. The simplest way to start this server is:

Now browse to the app at http://localhost:8000/app/.

If you are doing any javascript development you can instead run:

To run tests as well every time a javascript file is updated

To watch all files run:

To run tests or compile less to css when the relevent files are updated.

Running the build script

To create a build to deploy for a production environment simply run:

The build files will then be in the dist/ directory.

Directory Layout


There are two kinds of tests in the angular-seed application: Unit tests and End to End tests.

Running Unit Tests

The angular-seed app comes preconfigured with unit tests. These are written in Jasmine, which we run with Grunt.

  • the configuration is found in Gruntfile.js
  • the unit tests are found in tests/unit/.

The easiest way to run the unit tests is to do:

This script will start the Jasmine test runner to execute the unit tests. You can also run:

Where the grunt watch command will sit and watch the source and test files for changes and then re-run the tests whenever any of them change. This is the recommended strategy; if you unit tests are being run every time you save a file then you receive instant feedback on any changes that break the expected code functionality.

End to end testing

The angular-seed app comes with end-to-end tests, again written in Jasmine. These tests are run with the Protractor End-to-End test runner. It uses native events and has special features for Angular applications.

  • the configuration is found at tests/e2e/protractor.conf.js
  • the end-to-end tests are found in tests/e2e/specs/

Protractor simulates interaction with our web app and verifies that the application responds correctly. Therefore, our web server needs to be serving up the application, so that Protractor can interact with it. To run end to end tests we first need to install protractor with global permissions. You may need to run this command with superuser privileges:

Once you have ensured that the development web server hosting our application is up and running and WebDriver is updated, you can run the end-to-end tests using the supplied grunt task:

Behind the scenes this will also run webdriver-manager update && webdriver-manager start. This will download and install the latest version of the stand-alone WebDriver tool and start the Selenium web server. This script will execute the end-to-end tests against the application being hosted on the development server.


For more information on AngularJS please check out

comments powered by Disqus
This page was last updated about 2 years ago.