Skip to content

Commit f011816

Browse files
FIX: Add restart of animations
1 parent d89c1ea commit f011816

File tree

2 files changed

+39
-15
lines changed

2 files changed

+39
-15
lines changed

src/code/js/animation.js

+37-13
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,43 @@
1-
function generateAnimations() {
1+
function generateAnimations({ element }) {
22

3-
for (let elem of pathElements) {
4-
// console.log('animate', elem);
3+
if (element != null) {
4+
let elem = {'id': element.id.split('-')[2], 'type': element.id.split('-')[1]};
5+
if (elem.id === '') elem.id = '-1';
6+
// console.log('animate', elem.type);
57
switch (elem.type) {
68
case 'userInput':
9+
console.log('userInput');
710
generateUserInputAnimation(elem);
811
break;
9-
case 'lut':
12+
case 'lut':
13+
console.log('lut');
1014
generateLUTAnimation(elem);
1115
break;
12-
case 'DFF':
16+
case 'ff':
17+
console.log('ff');
1318
generateDFFAnimation(elem);
1419
break;
15-
1620
default:
1721
break;
1822
}
23+
} else {
24+
for (let elem of pathElements) {
25+
// console.log('animate', elem);
26+
switch (elem.type) {
27+
case 'userInput':
28+
generateUserInputAnimation(elem);
29+
break;
30+
case 'lut':
31+
generateLUTAnimation(elem);
32+
break;
33+
case 'DFF':
34+
generateDFFAnimation(elem);
35+
break;
36+
37+
default:
38+
break;
39+
}
40+
}
1941
}
2042
}
2143

@@ -141,18 +163,20 @@ async function animatePath(i) {
141163
let wire4 = document.getElementById(`${type}-${id}-Wire4`) ?? null;
142164
let wire5 = document.getElementById(`${type}-${id}-Wire5`) ?? null;
143165
elem.style.display = 'block';
144-
let wiresLength = wire4 != null
145-
? wire5 != null
146-
? 5
147-
: 4
148-
: 3;
166+
let wiresLength = wire4 != null
167+
? wire5 != null
168+
? 5
169+
: 4
170+
: 3;
149171
animateElement(elem, [wire1, wire2, wire3, wire4, wire5]);
150172
setTimeout(() => {
151173
if (i < pathElements.length - 2) {
152-
elem.style.display = 'none';
174+
elem.remove();
175+
generateAnimations({ element: elem });
153176
animatePath(i + 1);
154177
} else {
155-
elem.style.display = 'none';
178+
elem.remove();
179+
generateAnimations({ element: elem });
156180
}
157181
}, wiresLength * 400);
158182
}

src/code/js/load.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function endLoad(){
3030
clock[0].style.position = 'fixed';
3131
clock[0].style.bottom = '1vh';
3232

33-
34-
generateAnimations();
33+
34+
generateAnimations({element: null});
3535

3636
}

0 commit comments

Comments
 (0)