@tsparticles/interaction-external-drag
tsParticles drag external interaction
162,673
8,997
| Install | |
|---|---|
npm install @tsparticles/interaction-external-drag |
|
| Latest Version: | 4.4.0 |
| License: | MIT |
| Last Updated: | Oct 21, 2026 |
| Links: | GitHub · npm |
Maintainer: matteobruni
tsParticles External Drag Interaction
tsParticles interaction plugin for dragging particles across the canvas with the mouse/pointer.
Quick checklist
- Install
@tsparticles/engine(or use the CDN bundle below) - Call the package loader function(s) before
tsParticles.load(...) - Apply the package options in your
tsParticles.load(...)config
How to use it
CDN / Vanilla JS / jQuery
The CDN/Vanilla version JS has one required file in vanilla configuration:
Including the tsparticles.interaction.external.drag.min.js file will export the function to load the interaction
plugin:
loadExternalDragInteraction;
Usage
Once the scripts are loaded you can set up tsParticles and the interaction plugin like this:
(async () => {
await loadInteractivityPlugin(tsParticles);
await loadExternalDragInteraction(tsParticles);
await tsParticles.load({
id: "tsparticles",
options: {
interactivity: {
events: {
onClick: {
enable: true,
mode: "drag",
},
},
},
},
});
})();
ESM / CommonJS
This package is compatible also with ES or CommonJS modules, firstly this needs to be installed, like this:
$ npm install @tsparticles/interaction-external-drag
or
$ yarn add @tsparticles/interaction-external-drag
Then you need to import it in the app, like this:
const { tsParticles } = require("@tsparticles/engine");
const { loadInteractivityPlugin } = require("@tsparticles/plugin-interactivity");
const { loadExternalDragInteraction } = require("@tsparticles/interaction-external-drag");
(async () => {
await loadInteractivityPlugin(tsParticles);
await loadExternalDragInteraction(tsParticles);
})();
or
import { tsParticles } from "@tsparticles/engine";
import { loadInteractivityPlugin } from "@tsparticles/plugin-interactivity";
import { loadExternalDragInteraction } from "@tsparticles/interaction-external-drag";
(async () => {
await loadInteractivityPlugin(tsParticles);
await loadExternalDragInteraction(tsParticles);
})();
Option mapping
- Event mode key:
interactivity.events.onHover.modeorinteractivity.events.onClick.modewith value"drag" - Mode options key:
interactivity.modes.drag
{
"interactivity": {
"events": {
"onHover": {
"enable": true,
"mode": "drag"
}
},
"modes": {
"drag": {}
}
}
}
Common pitfalls
- Calling
tsParticles.load(...)beforeloadInteractivityPlugin(...) - Verify required peer packages before enabling advanced options
- Change one option group at a time to isolate regressions quickly
Related docs
- All packages catalog: https://github.com/tsparticles/tsparticles
- Main docs: https://particles.js.org/docs/
Related Packages
@tsparticles/interaction-particles-attract
tsParticles attract particles interaction
9,955,919
8,997
@tsparticles/interaction-particles-collisions
tsParticles collisions particles interaction
9,947,686
8,997
Version History
| Version | Released | License |
|---|---|---|
| 4.4.0 | MIT | |
| 4.3.2 | MIT | |
| 4.3.1 | MIT | |
| 4.3.0 | MIT | |
| 4.2.1 | MIT | |
| 4.2.0 | MIT | |
| 4.1.3 | MIT | |
| 4.1.2 | MIT | |
| 4.1.1 | MIT | |
| 4.1.0 | MIT | |
| 4.0.5 | MIT | |
| 4.0.4 | MIT | |
| 4.0.3 | MIT | |
| 4.0.2 | MIT | |
| 4.0.1 | MIT | |
| 4.0.0 | MIT |
Pre-releases (16)
| Version | Released | License |
|---|---|---|
| 4.0.0-beta.17 | MIT | |
| 4.0.0-beta.16 | MIT | |
| 4.0.0-beta.15 | MIT | |
| 4.0.0-beta.12 | MIT | |
| 4.0.0-beta.11 | MIT | |
| 4.0.0-beta.10 | MIT | |
| 4.0.0-beta.9 | MIT | |
| 4.0.0-beta.8 | MIT | |
| 4.0.0-beta.6 | MIT | |
| 4.0.0-beta.5 | MIT | |
| 4.0.0-beta.4 | MIT | |
| 4.0.0-beta.3 | MIT | |
| 4.0.0-beta.2 | MIT | |
| 4.0.0-beta.1 | MIT | |
| 4.0.0-beta.0 | MIT | |
| 4.0.0-alpha.28 | MIT |
