2.3.0 • Published 3 years ago
kis-animate
Licence
—
Version
2.3.0
Deps
0
Size
66 kB
Vulns
0
Weekly
0
kis-animate
Lightweight library that helps you to animate elements on your pages.
All the animations are written using CSS
@keyframesandtransitionproperties what makes them as smooth as possible. You can also add your own animations by supplementing css. All source files are placed insrc/libdirectory.
Usage
Install library
npm install kis-animate
Import library and initialize animation instance
// your-file.js
import 'kis-animate/style'
import { KisAnimate, KisAnimateText } from 'kis-animate'
const animation = new KisAnimate();
animation.init();
const customisedAnimation = new KisAnimate({
items: '.items-selector', // or NodeListOf<HTMLElement>
delayStep: 200,
duration: 500,
// ...
// You can find more parameters in API section bellow
});
customisedAnimation.init();
const textAnimation = new KisAnimateText();
textAnimation.init();
const customisedTextAnimation = new KisAnimateText({
items: '.text-selector', // or NodeListOf<HTMLElement>
symbolDelay: 20,
// ...
// You can find more parameters in API section bellow
});
customisedTextAnimation.init();
API
KisAnimate
| Name | Attribute | Type | Default | Description |
|---|---|---|---|---|
| items | - |
string or NodeListOf<HTMLElement> |
'[data-a-type]:not([data-a-state])' |
CSS selector or collection of items you want to animate or NodeList of HTML elements. |
| type | data-a-type |
string |
'slide-in-from-bottom' |
Name of the animation you want to use. Check the list of animations available out of the box. |
| timingFunction | data-a-timing-function |
string |
'ease' |
Animation timing function. |
| delay | data-a-delay |
number |
0 |
Delay in milliseconds after which the animation starts playing. |
| delayStep | - |
number |
0 |
Delay in milliseconds after which the next item animation will be fired. |
| duration | data-a-duration |
number |
800 |
Animation duration in milliseconds. |
| offset | data-a-offset |
string |
'0px' |
Allows you to trigger animation a bit later. Technically this is IntersectionObserver rootMargin. |
| threshold | data-a-threshold |
number |
0.1 |
Technically this is IntersectionObserver threshold. |
List of available animation types
- fade-in
- fade-out
- grow-in
- grow-out
- slide-in-from-bottom
- slide-in-from-top
KisAnimateText
| Name | Attribute | Type | Default | Description |
|---|---|---|---|---|
| items | - |
string or NodeListOf<HTMLElement> |
'[data-a-text-type]:not([data-a-text-state])' |
CSS selector or collection of items you want to animate or NodeList of HTML elements. |
| type | data-a-text-type |
string |
'slide-in-from-bottom' |
Name of the animation you want to use. Check the list of animations available out of the box. |
| timingFunction | data-a-text-timing-function |
string |
'ease' |
Transition timing function. |
| delay | data-a-text-delay |
number |
0 |
Delay in milliseconds after which the animation starts playing. |
| symbolDelay | data-a-text-symbol-delay |
number |
10 |
Delay between each symbol animation. Personal recommendation: use something like half of the element font size in pixels. 20 for 40px text, 8 for 16px text etc.. |
| duration | data-a-text-duration |
number |
800 |
Animation duration in milliseconds for each symbol. |
| offset | data-a-text-offset |
string |
'0px' |
Allows you to trigger animation a bit later. Technically this is IntersectionObserver rootMargin. |
| threshold | data-a-text-threshold |
number |
0.1 |
Technically this is IntersectionObserver threshold. |
| wordPaddingInline | data-a-text-word-word-padding-inline |
string |
0.5em |
Increase this parameter if your text cuts of on left/right. (We use padding and negative margin combo to make mask effect.) |
| wordPaddingBlock | data-a-text-word-word-padding-block |
string |
0.2em |
Increase this parameter if your text cuts of on top/bottom. Do not make it huge, it will make your mask animations look worse. (We use padding and negative margin combo to make mask effect.) |
List of available text animation types
- slide-in-from-bottom
- slide-in-from-bottom-mask
- slide-in-from-bottom-mask-with-rotation-anticlockwise