npm.io
4.3.0 • Published yesterday

@tsparticles/interaction-external-attract

Licence
MIT
Version
4.3.0
Deps
0
Size
228 kB
Vulns
0
Weekly
254.3K
Stars
8.9K

banner

tsParticles External Attraction Interaction

jsDelivr npmjs npmjs GitHub Sponsors

tsParticles interaction plugin for attract effect around mouse or HTML elements.

Quick checklist

  1. Install @tsparticles/engine (or use the CDN bundle below)
  2. Call the package loader function(s) before tsParticles.load(...)
  3. 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.attract.min.js file will export the function to load the interaction plugin:

loadExternalAttractInteraction;
Usage

Once the scripts are loaded you can set up tsParticles and the interaction plugin like this:

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadExternalAttractInteraction(tsParticles);

  await tsParticles.load({
    id: "tsparticles",
    options: {
      /* options */
    },
  });
})();
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-attract

or

$ yarn add @tsparticles/interaction-external-attract

Then you need to import it in the app, like this:

const { tsParticles } = require("@tsparticles/engine");
const { loadInteractivityPlugin } = require("@tsparticles/plugin-interactivity");
const { loadExternalAttractInteraction } = require("@tsparticles/interaction-external-attract");

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadExternalAttractInteraction(tsParticles);
})();

or

import { tsParticles } from "@tsparticles/engine";
import { loadInteractivityPlugin } from "@tsparticles/plugin-interactivity";
import { loadExternalAttractInteraction } from "@tsparticles/interaction-external-attract";

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadExternalAttractInteraction(tsParticles);
})();

Option mapping

  • Event mode key: interactivity.events.onHover.mode or interactivity.events.onClick.mode with value "attract"
  • Mode options key: interactivity.modes.attract
{
  "interactivity": {
    "events": {
      "onHover": {
        "enable": true,
        "mode": "attract"
      }
    },
    "modes": {
      "attract": {}
    }
  }
}

Common pitfalls

  • Calling tsParticles.load(...) before loadInteractivityPlugin(...)
  • Verify required peer packages before enabling advanced options
  • Change one option group at a time to isolate regressions quickly

Keywords