about summary refs log tree commit diff
path: root/tests/touching_grass.html
blob: de9079874ec34a00f072e397ec5af9c48ec4265b (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<html>

<head>
	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
	<meta charset="utf-8" />
	<link rel="icon" type="image/png" href="/3directions.png" />
	<link rel="icon" type="image/svg+xml" href="/3directions.svg" />
	<title>Touching Grass | nyble.dev</title>
	<link rel="stylesheet" href="/styles/common.css" />
	<link rel="stylesheet" href="/styles/narrow.css" />
	<link rel="stylesheet" href="/styles/touching-grass.css" />
</head>

<body>
	<ul id="nav-access">
		<li><a href="#content">Skip to main content</a></li>
	</ul>

	<nav class="sized">
		<a id="home" href="/" alt="home">&larr; home</a>
	</nav>

	<main id="content" class="writing sized">
		<h1>Touching Grass</h1>
		<section style="width: 100%; text-align: right; padding: 8px 0">
			<video id="grass" controls width="100%" poster="grass_poster.jpg" preload="metadata" loop>
				<source src="grass_720p.mp4" type="video/mp4" />
				<track default src="grass.vtt" />
			</video>
			<ul>
				<li class="small">download</li>
				<li><a href="grass.mp4" download>[1080p | 7.1MB]</a></li>
				<li><a href="grass_720p.mp4" download>[720p | 1.9MB]</a></li>
				<li id="long"></li>
				<li><input type="checkbox" checked id="loop"><label> loop video?</label></input></li>
			</ul>
		</section>

		<script>
			document.addEventListener("DOMContentLoaded", setup);

			const video = document.getElementById("grass");
			function setup() {
				let marks = document.getElementsByClassName("mark");
				for (let i = 0; i < marks.length; ++i) {
					marks[i].addEventListener('click', markClick)
				}
				console.log(marks);

				let loop = document.getElementById('loop');
				loop.addEventListener('change', loopChanged)

				// Fire once with a fake event so we aren't desynced
				loopChanged({ 'target': loop });
			}

			function markClick(event) {
				let target = event.target;
				let time = parseFloat(target.getAttribute('data-time'));
				console.log(`seeking to ${time}`)
				video.currentTime = time;
			}

			function loopChanged(event) {
				let target = event.target;
				let checked = target.checked;
				console.log(`video looping: ${checked}`);
				video.loop = checked;
			}
		</script>
		<p>
			I took this short video to send to a friend one day and accidentally
			made a 106 frame masterpiece. Well, that's hyperbolic. But there's a
			lot I enjoy about it.
		</p>
		<p id="the-colours">
			The contrast between my orange painted nails and the surprisingly
			green grass is pretty pleasing. I think the gentle brown of the brick
			in the bottom-left corner helps keep from an overwhelming greenery.
			Thanks bricks :)
		</p>
		<p id="the-composition">
			The accidental camera movement is nice, too. I like the angle the camera is at and the way it wobbles.
			It's clearly hand-held. At <span class="mark" data-time="1.3">1.3-ish-seconds</span>
			you can see I gently sway forward, but seem to be less wobbly. <i>I'm braced;
				I'm stable! I have-three-points-of-contact-with-the-ground!</i> Then, at roughly
			<span class="mark" data-time="1.9">2&nbsp;seconds</span> when the grass finally
			yields, I get rocked back and wobbles resume.
		</p>
		<p id="the-sound">
			The sound! And the sound. The ripping of the grass. That planty matter finally giving way. The fibrous
			tearing.
			I just like it; I enjoy it! I greatly appreciate it.
		</p>

	</main>

	<footer class="sized">
		<ul id="dates">
			<li id="dates-title">&nbsp;times</li>
			<li><abbr title="creation time">c</abbr> Jul. 29, 2023 21:17</li>
			<li><abbr title="modification time">m</abbr> Oct. 28, 2023 05:16</li>
		</ul>
	</footer>
</body>

</html>