Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
@dflex/draggable
Advanced tools
Draggable is a native utility written in pure JS works for Web and Mobile
DFlex draggable is the simplest solution to create JavaScript draggable elements. No need for a special tutorial and thinking about implementation complexity or even migration to different technologies for different frameworks. It can be used with any app you have whether it is React, Vue, Angular or Svelte.
Visit DFlex site for more https://jalal246.github.io/dflex/ and to see live examples with the full code.
npm install @dflex/draggable
You can add strictly draggable, moving only horizontal or vertical by yourself because you control dragging coordinations.
You can control the clickable area, simply because it's a mouse event. Could be on the entire element or a small button of the element. It's up to you.
You know when the dragging is going to start and end without adding additional API functions.
It can be nested dragging. Related to a list of elements or just one element It doesn't matter. It is always the same.
import { store, Draggable } from "@dflex/draggable";
Register draggable element in draggable store:
store.register({ id: string, ref: HTMLElement });
Create draggable instance with onmousedown
handler
const draggable = new Draggable(id: string, {x: event.clientX, y: event.clientY});
Move the element with onmousemove
handler
draggable.dragAt(event.clientX, event.clientY);
You can end dragging withonmouseup
handler
draggable.endDragging();
While you can add style, classes related to drag since you trigger dragAt
and endDragging
.
You can also control the few style properties that Draggable use when dragging.
When create draggable Instance you can use draggedStyle: Array<draggedStyleObj>
draggedStyleObj: {
prop: string;
dragValue: string;
afterDragValue:? string;
}
Default value for draggedStyle
:
const draggedStyle = [
{
prop: "zIndex",
dragValue: "99",
afterDragValue: null,
},
];
You can change it after creating dragged instance. The following example
will change background color red
during the drag and purple
after finish dragging.
draggable.draggedStyle = [
{
prop: "zIndex",
dragValue: "99",
afterDragValue: null,
},
{
prop: "pointerEvents",
dragValue: "pointer",
afterDragValue: null,
},
{
prop: "background",
dragValue: "red",
afterDragValue: "purple",
},
];
DFlex Draggable is part of project contains:
DOM Generator DOM relations generator algorithm. Generate relations between DOM elements based on element depth without a browser.
DOM Store The only Store that allows you to traverse through the DOM tree using element id without reading from the browser.
Drag & Drop A Simple, lightweight Solution for a Drag & Drop App based on enhanced DOM store algorithm. You can achieve a drag and drop with three steps only with mouse event.
yarn test draggable
This package is licensed under the GPL-3.0 License
If you like this project, you can support it by contributing. If you find a bug, please let me know, applying a pull request is welcome. This project needs your support. You can fix typos, add new examples, or build with me new features.
Support this project by giving it a Star ⭐
FAQs
Draggable only package for all JavaScript frameworks
The npm package @dflex/draggable receives a total of 80 weekly downloads. As such, @dflex/draggable popularity was classified as not popular.
We found that @dflex/draggable demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.