1 | import { Utils } from "../../Utils";
|
2 | import { ClickMode, HoverMode } from "../../Enums/Modes";
|
3 | export class TrailMaker {
|
4 | constructor(container) {
|
5 | this.container = container;
|
6 | this.delay = 0;
|
7 | }
|
8 | interact(delta) {
|
9 | if (!this.container.retina.reduceFactor) {
|
10 | return;
|
11 | }
|
12 | const container = this.container;
|
13 | const options = container.actualOptions;
|
14 | const trailOptions = options.interactivity.modes.trail;
|
15 | const optDelay = (trailOptions.delay * 1000) / this.container.retina.reduceFactor;
|
16 | if (this.delay < optDelay) {
|
17 | this.delay += delta.value;
|
18 | }
|
19 | if (this.delay >= optDelay) {
|
20 | container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);
|
21 | this.delay -= optDelay;
|
22 | }
|
23 | }
|
24 | isEnabled() {
|
25 | const container = this.container;
|
26 | const options = container.actualOptions;
|
27 | const mouse = container.interactivity.mouse;
|
28 | const events = options.interactivity.events;
|
29 | return ((mouse.clicking &&
|
30 | mouse.inside &&
|
31 | !!mouse.position &&
|
32 | Utils.isInArray(ClickMode.trail, events.onClick.mode)) ||
|
33 | (mouse.inside && !!mouse.position && Utils.isInArray(HoverMode.trail, events.onHover.mode)));
|
34 | }
|
35 | reset() {
|
36 | }
|
37 | }
|