aboutsummaryrefslogtreecommitdiffstats
path: root/arrows.js
blob: 4584aeae59c44ac040467bed82b3c509a7e0157a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

arrows = [];

const minSpeed = 3;
const maxSpeed = 8;
const delay = 3000;
const lifetime = 20000;

function make_arrow() {
	const svg = document.getElementById("protoarrow").cloneNode();
	svg.style.left = Math.random() * 100 + '%';
	svg.style.display = 'block';
	document.getElementById('arrows').append(svg);
	const ob = {
		y: -800, 
		svg: svg, 
		speed: Math.random() * (maxSpeed - minSpeed) + minSpeed
	};
	arrows.push(ob);
	setTimeout(make_arrow, delay);
	setTimeout(() => {
		svg.remove();
		arrows.remove(ob);
	}, lifetime);
}

function update() {
	for (const arrow of arrows) {
		arrow.y += arrow.speed;
		arrow.svg.style.bottom = arrow.y + 'px';
	}
	
	window.requestAnimationFrame(update);
}

make_arrow();
update();