All Projects → drawcall → Anix

drawcall / Anix

🐿 Super easy and lightweight(<3kb) JavaScript animation library

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Anix

Vue Motion
Easy and natural state transitions
Stars: ✭ 373 (+56.07%)
Mutual labels:  transition, motion
Droidmotion
🏂 Implementation of a simple android motion
Stars: ✭ 200 (-16.32%)
Mutual labels:  transition, motion
use-spring
Hooke's law hook
Stars: ✭ 53 (-77.82%)
Mutual labels:  motion, transition
Use Web Animations
😎 🍿 React hook for highly-performant and manipulable animations using Web Animations API.
Stars: ✭ 802 (+235.56%)
Mutual labels:  transition, motion
AniX
🐿 Super easy and lightweight(<3kb) JavaScript animation library
Stars: ✭ 253 (+5.86%)
Mutual labels:  motion, transition
Element Motion
Tween between view states with declarative zero configuration element motions for React
Stars: ✭ 828 (+246.44%)
Mutual labels:  transition, motion
Unity Easinglibraryvisualisation
Front end visualisation of 40 common easing equations.
Stars: ✭ 178 (-25.52%)
Mutual labels:  motion
Visualizer
UI-Router state visualizer and transition visualizer
Stars: ✭ 205 (-14.23%)
Mutual labels:  transition
Transitioner
A library for dynamic view-to-view transitions
Stars: ✭ 2,049 (+757.32%)
Mutual labels:  transition
Mathutilities
A collection of some of the neat math and physics tricks that I've collected over the last few years.
Stars: ✭ 2,815 (+1077.82%)
Mutual labels:  motion
Raspberrypi Facedetection Mtcnn Caffe With Motion
MTCNN with Motion Detection, on Raspberry Pi with Love
Stars: ✭ 204 (-14.64%)
Mutual labels:  motion
Watch Test
⌚运动演示-支持H5,Android,微信小程序
Stars: ✭ 171 (-28.45%)
Mutual labels:  motion
Amass
Data preparation and loader for AMASS
Stars: ✭ 180 (-24.69%)
Mutual labels:  motion
Marshroute
Marshroute is an iOS Library for making your Routers simple but extremely powerful
Stars: ✭ 208 (-12.97%)
Mutual labels:  transition
Cssanimation.io
CSS Animation Library for Developers and Ninjas
Stars: ✭ 176 (-26.36%)
Mutual labels:  transition
Transition
Easy interactive interruptible custom ViewController transitions
Stars: ✭ 2,566 (+973.64%)
Mutual labels:  transition
React Reveal Text
✨ A small react library for animating the revealing of text.
Stars: ✭ 171 (-28.45%)
Mutual labels:  transition
Decktransition
A library to recreate the iOS Apple Music now playing transition
Stars: ✭ 2,207 (+823.43%)
Mutual labels:  transition
Pikrellcam
Raspberry Pi motion vector detection program with OSD web interface.
Stars: ✭ 211 (-11.72%)
Mutual labels:  motion
Vim Sneak
The missing motion for Vim 👟
Stars: ✭ 2,467 (+932.22%)
Mutual labels:  motion


Overview

AniX - A super easy and lightweight javascript animation library.

AniX is a lightweight and easy-to-use animation library with excellent performance and good compatibility for modern browsers.

It uses the native css transition attribute, better than js simulation animation performance. And you can also enable hardware acceleration with it.

AniX only less than 3k(gzip) in size. It achieves almost the same effect as any other huge library of animations.

View demo, please click here.

code

Install and Include

Install and Import anix.

$ npm install anix --save-dev
...

import { AniX } from 'anix';

Use the umd version anix.umd.js. Check out the UMD repository for more details.

<script src="./js/anix.umd.ts" type="text/javascript"></script>

Use jQuery plugin anix.jq.js, that supports chain syntax.

<script src="./js/jquery.min.js" type="text/javascript"></script>
<script src="./js/anix.jq.js" type="text/javascript"></script>

Usage

Basic usage.

AniX.to(dom, 1, {
    x: 300,
    y: 10,
    scale: 2,
    delay: 0.5,
    onComplete: function(){
      	alert("over");
    }
});

// or 
AniX.to(dom, 1, {
    "width": "200px",
    "background-color": "#ffcc00",
    "ease": AniX.ease.easeOutBack,
    "onComplete": () => {
        //STATE : COMPLETED!
        console.log("STATE : COMPLETED!");
    }
});

jQuery plug-in usage anix.jq.js

$('.demo').css({'left':'0px'}).to(.5, {
    'left': '500px',
    'background-color': '#ffcc00'
});

Use in react(v16+)

class MyComponent extends React.Component {
    constructor(props) {
        super(props);
        this.myRef = React.createRef();
        this.clickHandler = this.clickHandler.bind(this);
    }

    clickHandler(e) {
        const node = this.myRef.current;
        // animation
        AniX.to(node, 1, {
            x: 300,
            y: 10,
            scale: 2
        });
    }

    render() {
        return (
            <div>
                <div ref={this.myRef} />
                <button onClick={this.clickHandler}></button>
            </div>
        );
    }
}

Why?

There are a lot of animation libraries Why use AniX?

  • First of all, it is very small and 3kb (gzip) is very suitable for use on the mobile page (because there is a requirement for size).

  • Secondly, Anix directly uses native css animation properties, which is very high performance.

  • Good compatibility, after a lot of real machine tests, good performance. Includes a variety of android devices

Documentation

General documents please visit https://drawcall.github.io/AniX/

jQuery plug-in documents are as follows

//like AniX.to
$(..).to(time: number, args: {ease?:string; delay?:number; [propName:string]:any;})

//like AniX.fromTo
$(..).fromTo(time: number, fromArgs: Object, toArgs: Object)

//like AniX.kill
$(..).kill(complete?: boolean)

//like AniX.get
$(..).getTransform(param: any)

//like AniX.ease
$.ease.easeOut

Test and Build

install and build all task

git clone [email protected]:drawcall/AniX.git
npm install
npm run all

build jquery or umd version

npm run jq
npm run umd

demo example (the document page) is used create-react-app

cd ./example
npm install
npm start
npm run build

Then open http://localhost:3000/

Use test cases

view the ./test/test.html

Other

There are other versions here, of course, they are not necessary. React version and Vue version...

License

The MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].