Convert Figma logo to code with AI

visionmedia logomove.js

CSS3 backed JavaScript animation framework

4,714
679
4,714
36

Top Related Projects

16,093

A JavaScript Typing Animation Library

61,908

JavaScript animation engine

22,258

GSAP (GreenSock Animation Platform), a JavaScript animation library for the modern web

10,501

Simple & lightweight (<4kb gzipped) vanilla JavaScript library to create smooth & beautiful animations when you scroll.

27,660

Animate on scroll library

16,544

Parallax Engine that reacts to the orientation of a smart device

Quick Overview

Move.js is a lightweight JavaScript library for creating smooth CSS3 animations and transitions. It provides a simple API to animate CSS properties, making it easy to add dynamic and interactive effects to web pages without complex JavaScript or CSS keyframes.

Pros

  • Lightweight and easy to use
  • Supports chaining for complex animations
  • Works with most modern browsers
  • No dependencies required

Cons

  • Limited to CSS properties that can be animated
  • May not be suitable for complex, game-like animations
  • Less active development in recent years
  • Lacks advanced features found in more comprehensive animation libraries

Code Examples

Basic animation:

move('.box')
  .set('background-color', '#f00')
  .duration('2s')
  .end();

This code animates a box element by changing its background color to red over 2 seconds.

Chained animations:

move('.circle')
  .set('background-color', 'blue')
  .scale(2)
  .rotate(180)
  .duration('1s')
  .then()
    .set('opacity', 0.5)
    .scale(1)
    .duration('0.5s')
    .pop()
  .end();

This example chains multiple animations together, first scaling and rotating a circle while changing its color, then reducing its opacity and scaling it back down.

Relative animations:

move('.slider')
  .add('left', 50)
  .duration('0.5s')
  .end();

This code moves an element 50 pixels to the right relative to its current position.

Getting Started

  1. Include the Move.js library in your HTML file:
<script src="https://cdnjs.cloudflare.com/ajax/libs/move.js/0.5.0/move.min.js"></script>
  1. Use the move() function to animate elements:
move('.element')
  .set('background-color', '#f00')
  .duration('1s')
  .end();
  1. Chain multiple animations or use callbacks for more complex effects:
move('.element')
  .scale(2)
  .rotate(45)
  .set('border-radius', '50%')
  .duration('1s')
  .then()
    .set('opacity', 0)
    .duration('0.5s')
    .end(function() {
      console.log('Animation complete!');
    });

Competitor Comparisons

16,093

A JavaScript Typing Animation Library

Pros of Typed.js

  • More actively maintained with recent updates
  • Broader typing animation features, including backspacing and cursor customization
  • Larger community and more widespread usage

Cons of Typed.js

  • Larger file size compared to Move.js
  • More focused on typing animations, less versatile for general animations

Code Comparison

Move.js:

move('#box')
  .set('margin-left', 300)
  .duration('2s')
  .end();

Typed.js:

var typed = new Typed('#element', {
  strings: ['First sentence.', 'Second sentence.'],
  typeSpeed: 30
});

Key Differences

  • Move.js is primarily for CSS-based animations, while Typed.js specializes in typing animations
  • Move.js offers a more chainable API for creating animations
  • Typed.js provides more options for customizing the typing effect

Use Cases

  • Move.js: General purpose CSS animations and transitions
  • Typed.js: Creating dynamic, typewriter-style text animations

Community and Support

  • Typed.js has more recent updates and a larger user base
  • Move.js hasn't been updated in several years, which may impact long-term support

Performance

  • Move.js is generally lighter and may perform better for simple animations
  • Typed.js might have a slight performance overhead due to its more complex features
61,908

JavaScript animation engine

Pros of Anime

  • More comprehensive animation capabilities, including SVG morphing and timeline control
  • Lighter weight (16.8kB vs 20kB for Move.js)
  • Active development and maintenance, with recent updates and a larger community

Cons of Anime

  • Steeper learning curve due to more complex API and features
  • May be overkill for simple animations, where Move.js might suffice
  • Requires more setup and configuration for basic animations

Code Comparison

Move.js:

move('#element')
  .set('background-color', '#f00')
  .duration('2s')
  .end();

Anime:

anime({
  targets: '#element',
  backgroundColor: '#f00',
  duration: 2000
});

Summary

Anime offers more advanced features and better performance, making it suitable for complex animations and projects requiring fine-tuned control. Move.js, while simpler, may be preferable for basic animations or projects with minimal animation needs. The choice between the two depends on the specific requirements of your project and the level of animation complexity you need to achieve.

22,258

GSAP (GreenSock Animation Platform), a JavaScript animation library for the modern web

Pros of GSAP

  • More comprehensive animation capabilities, including complex timelines and advanced easing functions
  • Robust cross-browser compatibility and performance optimization
  • Active development and extensive documentation

Cons of GSAP

  • Steeper learning curve due to its extensive feature set
  • Larger file size, which may impact load times for smaller projects

Code Comparison

Move.js:

move('#box')
  .set('margin-left', 50)
  .duration('0.5s')
  .end();

GSAP:

gsap.to("#box", {
  duration: 0.5,
  marginLeft: 50
});

Key Differences

  • Syntax: Move.js uses a chaining method, while GSAP employs an object-based approach
  • Feature set: GSAP offers more advanced animation capabilities and timeline control
  • Community and support: GSAP has a larger user base and more frequent updates

Use Cases

  • Move.js: Suitable for simple animations in smaller projects
  • GSAP: Ideal for complex animations, interactive websites, and professional-grade motion graphics

Performance

GSAP generally outperforms Move.js in terms of animation smoothness and efficiency, especially for complex animations or on mobile devices.

Learning Resources

Both libraries have documentation, but GSAP offers more extensive tutorials, forums, and third-party learning materials due to its popularity and broader feature set.

10,501

Simple & lightweight (<4kb gzipped) vanilla JavaScript library to create smooth & beautiful animations when you scroll.

Pros of lax.js

  • More lightweight and focused on scroll-based animations
  • Easier to implement complex parallax effects
  • Supports mobile-friendly touch events out of the box

Cons of lax.js

  • Less versatile for general-purpose animations
  • Limited easing options compared to move.js
  • Steeper learning curve for non-scroll-based animations

Code Comparison

move.js:

move('#box')
  .set('margin-left', 50)
  .duration('0.5s')
  .end();

lax.js:

lax.addElement('#box', {
  scrollY: {
    translateX: [
      ["elInY", "elCenterY", "elOutY"],
      [0, 50, 0],
    ],
  }
});

Both libraries offer ways to animate elements, but their approaches differ. move.js provides a more straightforward API for general animations, while lax.js specializes in scroll-based effects. move.js uses a chaining method to define animations, making it intuitive for simple transitions. lax.js, on the other hand, uses a more complex configuration object that allows for intricate scroll-triggered animations.

The choice between these libraries depends on the specific needs of your project. If you're primarily focused on scroll-based animations and parallax effects, lax.js might be the better option. For more general-purpose animations with a simpler API, move.js could be more suitable.

27,660

Animate on scroll library

Pros of AOS

  • Offers a wider range of animation options and effects
  • Easier to implement for non-developers with data-attributes
  • Better documentation and examples

Cons of AOS

  • Larger file size and potentially heavier on performance
  • Less fine-grained control over animations compared to Move.js

Code Comparison

AOS:

<div data-aos="fade-up" data-aos-duration="1000">
  Animate me!
</div>

Move.js:

move('.element')
  .set('opacity', 0)
  .duration('1s')
  .end();

Key Differences

  • AOS is more focused on scroll-based animations, while Move.js is a general-purpose animation library
  • AOS uses data attributes for configuration, making it more accessible for beginners
  • Move.js provides more programmatic control, suitable for complex animations

Use Cases

  • AOS: Ideal for websites with scroll-triggered animations and parallax effects
  • Move.js: Better suited for dynamic, JavaScript-driven animations and interactive elements

Community and Maintenance

  • AOS has more recent updates and a larger community
  • Move.js hasn't been updated in several years, which may impact long-term support

Conclusion

Choose AOS for easy-to-implement scroll animations with a variety of effects. Opt for Move.js if you need more programmatic control and lighter weight for custom animations.

16,544

Parallax Engine that reacts to the orientation of a smart device

Pros of Parallax

  • More comprehensive parallax scrolling effects, including depth and scaling
  • Supports mobile devices with gyroscope-based parallax
  • Offers a wider range of customization options for parallax scenes

Cons of Parallax

  • Larger file size and potentially higher performance overhead
  • Steeper learning curve due to more complex API and configuration options
  • May require more setup and fine-tuning for optimal results

Code Comparison

Move.js:

move('#box')
  .set('margin-left', 50)
  .duration('0.5s')
  .end();

Parallax:

var scene = document.getElementById('scene');
var parallaxInstance = new Parallax(scene, {
  relativeInput: true,
  clipRelativeInput: false
});

Summary

Move.js is a lightweight JavaScript library for simple animations, while Parallax is specifically designed for creating parallax scrolling effects. Move.js is easier to use for basic animations but lacks the specialized parallax features of Parallax. Parallax offers more advanced parallax effects and mobile support but comes with a larger file size and more complex setup. Choose Move.js for simple animations or Parallax for dedicated parallax scrolling implementations.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Move.js

CSS3 JavaScript animation framework.

About

Move.js is a small JavaScript library making CSS3 backed animation extremely simple and elegant. Be sure to view the ./examples, and view the documentation.

Installation

With component(1):

$ component install visionmedia/move.js

With npm:

$ npm install move-js

With a stand-alone build

<script src='move.min.js'></script>

Example

For example below we translate to the point (500px, 200px), rotate by 180deg, scale by .5, skew, and alter colors within a 2 second duration. Once the animation is complete we then() fade out the element by setting the opacity to 0, and shrink it with scale(0.1).

move('.square')
  .to(500, 200)
  .rotate(180)
  .scale(.5)
  .set('background-color', '#888')
  .set('border-color', 'black')
  .duration('2s')
  .skew(50, -10)
  .then()
    .set('opacity', 0)
    .duration('0.3s')
    .scale(0.1)
    .pop()
  .end();

Easing functions

Built-in easing functions are defined as:

'in':                'ease-in'
'out':               'ease-out'
'in-out':            'ease-in-out'
'snap':              'cubic-bezier(0,1,.5,1)'
'linear':            'cubic-bezier(0.250, 0.250, 0.750, 0.750)'
'ease-in-quad':      'cubic-bezier(0.550, 0.085, 0.680, 0.530)'
'ease-in-cubic':     'cubic-bezier(0.550, 0.055, 0.675, 0.190)'
'ease-in-quart':     'cubic-bezier(0.895, 0.030, 0.685, 0.220)'
'ease-in-quint':     'cubic-bezier(0.755, 0.050, 0.855, 0.060)'
'ease-in-sine':      'cubic-bezier(0.470, 0.000, 0.745, 0.715)'
'ease-in-expo':      'cubic-bezier(0.950, 0.050, 0.795, 0.035)'
'ease-in-circ':      'cubic-bezier(0.600, 0.040, 0.980, 0.335)'
'ease-in-back':      'cubic-bezier(0.600, -0.280, 0.735, 0.045)'
'ease-out-quad':     'cubic-bezier(0.250, 0.460, 0.450, 0.940)'
'ease-out-cubic':    'cubic-bezier(0.215, 0.610, 0.355, 1.000)'
'ease-out-quart':    'cubic-bezier(0.165, 0.840, 0.440, 1.000)'
'ease-out-quint':    'cubic-bezier(0.230, 1.000, 0.320, 1.000)'
'ease-out-sine':     'cubic-bezier(0.390, 0.575, 0.565, 1.000)'
'ease-out-expo':     'cubic-bezier(0.190, 1.000, 0.220, 1.000)'
'ease-out-circ':     'cubic-bezier(0.075, 0.820, 0.165, 1.000)'
'ease-out-back':     'cubic-bezier(0.175, 0.885, 0.320, 1.275)'
'ease-out-quad':     'cubic-bezier(0.455, 0.030, 0.515, 0.955)'
'ease-out-cubic':    'cubic-bezier(0.645, 0.045, 0.355, 1.000)'
'ease-in-out-quart': 'cubic-bezier(0.770, 0.000, 0.175, 1.000)'
'ease-in-out-quint': 'cubic-bezier(0.860, 0.000, 0.070, 1.000)'
'ease-in-out-sine':  'cubic-bezier(0.445, 0.050, 0.550, 0.950)'
'ease-in-out-expo':  'cubic-bezier(1.000, 0.000, 0.000, 1.000)'
'ease-in-out-circ':  'cubic-bezier(0.785, 0.135, 0.150, 0.860)'
'ease-in-out-back':  'cubic-bezier(0.680, -0.550, 0.265, 1.550)'

Build

Move is packaged with a minified version, re-built each release. To do this yourself simply execute:

 $ make move.min.js

We can also pass flags to uglifyjs:

 $ make UGLIFY_FLAGS=--no-mangle

More Information

License

(The MIT License)

Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.