All Projects → junqiuzhang → easy-drag

junqiuzhang / easy-drag

Licence: MIT license
easy to realize drag and drop effect

Programming Languages

typescript
32286 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to easy-drag

Svgdragtree
一个可以通过拖放 SVG 图标,来生成拥有树状结构的视图与数据的前端组件。 SDT example:
Stars: ✭ 113 (+232.35%)
Mutual labels:  drag-and-drop, draggable
Ngx Smooth Dnd
angular wrapper for smooth-dnd
Stars: ✭ 152 (+347.06%)
Mutual labels:  drag-and-drop, draggable
React Kanban Dnd
📋 Open source kanban board built with React
Stars: ✭ 121 (+255.88%)
Mutual labels:  drag-and-drop, draggable
Lean Mean Drag And Drop
Drag&Drop Sorting and Reordering script for complex nested structures
Stars: ✭ 107 (+214.71%)
Mutual labels:  drag-and-drop, draggable
vue3-smooth-dnd
Vue3 wrapper components for smooth-dnd
Stars: ✭ 92 (+170.59%)
Mutual labels:  drag-and-drop, draggable
Flowy Vue
Vue Flowy makes creating flowchart or hierarchy chart functionality an easy task. Build automation software, mind mapping tools, organisation charts, or simple programming platforms in minutes by implementing the library into your project.
Stars: ✭ 107 (+214.71%)
Mutual labels:  drag-and-drop, draggable
React Dragline
🐼Guide lines and magnetic adsorption to better align draggable elements in React.
Stars: ✭ 134 (+294.12%)
Mutual labels:  drag-and-drop, draggable
Angular Draggable Mat Tree
Example implementation of drag and drop on Angular Material Tree
Stars: ✭ 47 (+38.24%)
Mutual labels:  drag-and-drop, draggable
Draggable
The JavaScript Drag & Drop library your grandparents warned you about.
Stars: ✭ 15,671 (+45991.18%)
Mutual labels:  drag-and-drop, draggable
React Dragtastic
A simple drag and drop library for React which uses the more stable mouseDown/mouseUp event pattern instead of the problematic HTML5 drag and drop API
Stars: ✭ 181 (+432.35%)
Mutual labels:  drag-and-drop, draggable
Muuri
Infinite responsive, sortable, filterable and draggable layouts
Stars: ✭ 9,797 (+28714.71%)
Mutual labels:  drag-and-drop, draggable
react-native-dnd-board
A drag and drop Kanban board for React Native.
Stars: ✭ 41 (+20.59%)
Mutual labels:  drag-and-drop, draggable
Jquery Sortablejs
A jQuery binding for SortableJS
Stars: ✭ 94 (+176.47%)
Mutual labels:  drag-and-drop, draggable
React Smooth Dnd
react wrapper components for smooth-dnd
Stars: ✭ 1,560 (+4488.24%)
Mutual labels:  drag-and-drop, draggable
Vue Smooth Dnd
Vue wrapper components for smooth-dnd
Stars: ✭ 1,121 (+3197.06%)
Mutual labels:  drag-and-drop, draggable
Flutter remote control
flutter remote control
Stars: ✭ 124 (+264.71%)
Mutual labels:  drag-and-drop, draggable
Dragact
a dragger layout system with React style .
Stars: ✭ 710 (+1988.24%)
Mutual labels:  drag-and-drop, draggable
Dragmove.js
A super tiny Javascript library to make DOM elements draggable and movable. ~500 bytes and no dependencies.
Stars: ✭ 757 (+2126.47%)
Mutual labels:  drag-and-drop, draggable
Angular Grid Layout
Responsive grid with draggable and resizable items for Angular applications.
Stars: ✭ 163 (+379.41%)
Mutual labels:  drag-and-drop, draggable
FlutterBoardView
BoardView written for the flutter framework.
Stars: ✭ 82 (+141.18%)
Mutual labels:  drag-and-drop, draggable

easy-drag

中文文档

Easy to realize drag effect

Principle

Listen to mousedown, mousemove, and mouseup events, and set the element's transform property to drag and drop according to the mouse position

Feature

  1. Use JavaScript implementation, support any framework
  2. Use transform property implementation that supports elements in any positioning mode
  3. Lightweight, only 2KB
  4. Performance, hardware acceleration for a silky drag experience
  5. Supports PC and mobile terminals

Install

# Yarn
yarn add easy-drag

# NPM
npm install --save easy-drag

Usage

import enableDrag from "easy-drag";
const disableDrag = enableDrag(document.querySelector(".draggable"));
if ("want to disable drag") {
  disableDrag();
}

Or

import enableDrag from "easy-drag";
const disableDrag = enableDrag(document.querySelector(".draggable"), {
  outerElement: document.body,
  innerElement: document.querySelector(".drag-icon"),
  onDragStart: () => {},
  onDrag: () => {},
  onDragEnd: () => {},
});
if ("want to disable drag") {
  disableDrag();
}

Description:

  • outerElement: drag range element, default document.body
  • innerElement: drag icon element, application scenario: Pop-ups need to be draggable, but only the title area can be dragged
  • onDragStart: callback on drag start, parameter v is element drag translate vector (relative to initial position)
  • onDrag: callback in dragging, parameter v is element drag translate vector (relative to initial position)
  • onDragEnd: callback on drag end, parameter v is element drag translate vector (relative to initial position)

Interface

import { TVector } from "./utils";
interface IOptions {
  /** element that control drag range */
  outerElement?: HTMLElement;
  /** element that to drag */
  innerElement?: HTMLElement;
  /** callback on drag start */
  onDragStart?: (v: TVector) => void;
  /** callback in dragging */
  onDrag?: (v: TVector) => void;
  /** callback on drag end */
  onDragEnd?: (v: TVector) => void;
}
/**
 * use transform easy to realize drag effect
 */
declare const enableDrag: (
  element: HTMLElement,
  options?: IOptions | undefined
) => () => void;
export default enableDrag;

License

MIT

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