Skip to content

Commit caec3b0

Browse files
3 file edited
1 parent a61ea94 commit caec3b0

3 files changed

Lines changed: 80 additions & 1 deletion

File tree

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,18 @@ Sposta l’elemento verso una posizione specifica (`x`, `y`) in un tempo determi
7070
* **seconds**: Tempo dell’animazione in secondi.<br>
7171

7272
**`mover.glideAtIdElement(id, seconds)`**
73-
Sposta l’elemento verso la posizione di un altro elemento HTML (selezionato tramite `id`) in un tempo determinato.
73+
Sposta l’elemento verso la posizione di un altro elemento HTML (selezionato tramite `id`) in un tempo determinato, con animazione fluida.
74+
* **id**: L’id dell’elemento di riferimento.
75+
* **seconds**: Tempo dell’animazione in secondi.<br>
76+
77+
**`mover.glideAtAndWait(x, y, seconds)`**
78+
Sposta l’elemento verso una posizione specifica (`x`, `y`) in un tempo determinato e attendi la fine dell'animazione prima di eseguire altro.
79+
* **x**: Coordinata finale sull’asse X.
80+
* **y**: Coordinata finale sull’asse Y.
81+
* **seconds**: Tempo dell’animazione in secondi.<br>
82+
83+
**`mover.glideAtIdElementAndWait(id, seconds)`**
84+
Sposta l’elemento verso la posizione di un altro elemento HTML (selezionato tramite `id`) in un tempo determinato, e attendi la fine dell'animazione prima di eseguire altro.
7485
* **id**: L’id dell’elemento di riferimento.
7586
* **seconds**: Tempo dell’animazione in secondi.<br>
7687

core/Movement-library.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,40 @@ class MoverJS {
8080
}
8181
}
8282

83+
glideAtAndWait(x, y, seconds) {
84+
this.element.style.transition = `left ${seconds}s, top ${seconds}s`; // Animazione su left e top
85+
this.achieve.setXY(x, y);
86+
return new Promise(resolve => { //Aspetta il completamento della animazione
87+
setTimeout(() => {
88+
this.element.style.transition = ''; // Rimuove la transizione dopo che è completata
89+
resolve();
90+
}, seconds * 1000);
91+
});
92+
}
93+
94+
glideAtIdElementAndWait(id, seconds) {
95+
const target = document.getElementById(id);
96+
if (target) {
97+
const rect = target.getBoundingClientRect();
98+
const startX = parseInt(this.element.style.left) || 0;
99+
const startY = parseInt(this.element.style.top) || 0;
100+
const endX = rect.left + window.scrollX;
101+
const endY = rect.top + window.scrollY;
102+
const distanceX = endX - startX;
103+
const distanceY = endY - startY;
104+
this.element.style.transition = `left ${seconds}s, top ${seconds}s`; // Animazione su left e top
105+
this.achieve.setXY(startX + distanceX, startY + distanceY);
106+
return new Promise(resolve => { //Aspetta il completamento della animazione
107+
setTimeout(() => {
108+
this.element.style.transition = ''; // Rimuove la transizione dopo che è completata
109+
resolve();
110+
}, seconds * 1000);
111+
});
112+
} else {
113+
console.error("The element with the id: " + id + " doesn't exist.");
114+
}
115+
}
116+
83117
punteInDirection(degrees) {
84118
this.element.style.transform = `rotate(${degrees}deg)`;
85119
}

core/Movement-library.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,40 @@ class MoverTS {
8383
}
8484
}
8585

86+
glideAtAndWait(x: number, y: number, seconds: number): void {
87+
this.element.style.transition = `left ${seconds}s, top ${seconds}s`; // Animazione su left e top
88+
this.achieve.setXY(x, y);
89+
return new Promise(resolve => { //Aspetta il completamento della animazione
90+
setTimeout(() => {
91+
this.element.style.transition = ''; // Rimuove la transizione dopo che è completata
92+
resolve();
93+
}, seconds * 1000);
94+
});
95+
}
96+
97+
glideAtIdElementAndWait(id: string, seconds: number): void {
98+
const target = document.getElementById(id);
99+
if (target) {
100+
const rect = target.getBoundingClientRect();
101+
const startX = parseInt(this.element.style.left) || 0;
102+
const startY = parseInt(this.element.style.top) || 0;
103+
const endX = rect.left + window.scrollX;
104+
const endY = rect.top + window.scrollY;
105+
const distanceX = endX - startX;
106+
const distanceY = endY - startY;
107+
this.element.style.transition = `left ${seconds}s, top ${seconds}s`; // Animazione su left e top
108+
this.achieve.setXY(startX + distanceX, startY + distanceY);
109+
return new Promise(resolve => { //Aspetta il completamento della animazione
110+
setTimeout(() => {
111+
this.element.style.transition = ''; // Rimuove la transizione dopo che è completata
112+
resolve();
113+
}, seconds * 1000);
114+
});
115+
} else {
116+
console.error("The element with the id: " + id + " doesn't exist.");
117+
}
118+
}
119+
86120
punteInDirection(degrees: number): void {
87121
this.element.style.transform = `rotate(${degrees}deg)`;
88122
}

0 commit comments

Comments
 (0)