All Projects → anseki → anim-event

anseki / anim-event

Licence: MIT license
Event Manager for Animation

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to anim-event

reactablejs
A react high-order component for interact.js(drag and drop, resizing and multi-touch gestures).
Stars: ✭ 59 (+136%)
Mutual labels:  resize, drag
Resize Observer
Polyfills the ResizeObserver API.
Stars: ✭ 540 (+2060%)
Mutual labels:  resize, event
subjx
Drag/Resize/Rotate Javascript library
Stars: ✭ 155 (+520%)
Mutual labels:  resize, drag
React Indiana Drag Scroll
React component which implements scrolling via holding the mouse button or touch
Stars: ✭ 190 (+660%)
Mutual labels:  drag, scroll
React Rnd
🖱 A resizable and draggable component for React.
Stars: ✭ 2,560 (+10140%)
Mutual labels:  resize, drag
three-onEvent
Add an EventListener for Object3d in your three.js project.(support click,hover or gaze)
Stars: ✭ 55 (+120%)
Mutual labels:  event-listener, event
Vue Draggable Resizable Gorkys
Vue 用于可调整大小和可拖动元素的组件并支持冲突检测、元素吸附、元素对齐、辅助线
Stars: ✭ 521 (+1984%)
Mutual labels:  resize, drag
Wxp Ui
小程序插件合集(下拉刷新, 拖拽排序, 索引列表, 日期选择, 侧滑删除...)
Stars: ✭ 636 (+2444%)
Mutual labels:  drag, scroll
Vue3 Draggable Resizable
[Vue3 组件] 用于拖拽调整位置和大小的的组件,同时支持冲突检测,元素吸附对齐,实时参考线。
Stars: ✭ 159 (+536%)
Mutual labels:  resize, drag
Vuegg
🐣 vue GUI generator
Stars: ✭ 2,056 (+8124%)
Mutual labels:  resize, drag
V Dragged
Vue directive plugin for drag event detection.
Stars: ✭ 84 (+236%)
Mutual labels:  drag, event
DebounceMonitoring
📑 Add debounce logic for any method in a single line.
Stars: ✭ 44 (+76%)
Mutual labels:  throttle, debounce
Dragscroll
micro library for drag-n-drop scrolling style
Stars: ✭ 989 (+3856%)
Mutual labels:  drag, scroll
Mitt
🥊 Tiny 200 byte functional event emitter / pubsub.
Stars: ✭ 6,945 (+27680%)
Mutual labels:  event-listener, event
Scrollbooster
Enjoyable content drag-to-scroll library
Stars: ✭ 775 (+3000%)
Mutual labels:  drag, scroll
srraf
Monitor scrolling and resizing without event listeners.
Stars: ✭ 26 (+4%)
Mutual labels:  resize, scroll
use-gesture
👇Bread n butter utility for component-tied mouse/touch gestures in React and Vanilla Javascript.
Stars: ✭ 6,624 (+26396%)
Mutual labels:  drag, scroll
React Use Gesture
👇Bread n butter utility for component-tied mouse/touch gestures in React and Vanilla Javascript.
Stars: ✭ 5,704 (+22716%)
Mutual labels:  drag, scroll
Vue Drag Resize
Vue Component for resize and drag elements
Stars: ✭ 1,007 (+3928%)
Mutual labels:  resize, drag
any-scroll
🚀 模拟scrollview, 支持pc/移动端, 让实现Tab/Slider等组件轻而易举.
Stars: ✭ 45 (+80%)
Mutual labels:  scroll, requestanimationframe

AnimEvent

npm GitHub issues dependencies license

Super Simple Event Manager for Animation

Some DOM events (e.g. scroll, resize, mousemove, drag, etc.) are fired too frequently.
The listening to those events for animation is performance degradation.
AnimEvent controls timing of calling event listeners with requestAnimationFrame (or 60fps in a web browser that doesn't support it).

AnimEvent works like lodash's throttle function, but it uses requestAnimationFrame that is more optimized for animation, instead of "wait-time".

Example: Open a file test/test.html by web browser.

Usage

Load AnimEvent into your web page.

<script src="anim-event.min.js"></script>

To register your event listener, pass AnimEvent.add(listener) instead of listener to addEventListener method.

For example, replace first code with second code:

window.addEventListener('scroll', listener, false);
window.addEventListener('scroll', AnimEvent.add(listener), false);

Then listener is called when the window is scrolled, with optimized timing for animation. Superfluous fired events are ignored.

Methods

AnimEvent.add

wrappedListener = AnimEvent.add(listener)

Add an event listener that is controlled by AnimEvent.
Pass a returned wrappedListener to addEventListener method.

A listener that has already been added can not be added.
For example, use one listener for multiple events:

var listener = AnimEvent.add(function(event) { console.log(event); });
window.addEventListener('scroll', listener, false);
window.addEventListener('resize', listener, false);

AnimEvent.remove

AnimEvent.remove(listener)

Remove an event listener that was added by AnimEvent.add method.
You can remove a wrappedListener that was added by addEventListener method from the event by removeEventListener method. AnimEvent.remove method removes a listener from listeners that are controlled by AnimEvent.

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].