UNPKG

1.37 kBJavaScriptView Raw
1import { Utils } from "../../Utils";
2import { ClickMode, HoverMode } from "../../Enums/Modes";
3export 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}