Mercurial Hosting > linkmystyle
comparison src/tools/animation.html @ 0:8f4df159f06b
start public repo
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 11 Jul 2025 20:57:49 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8f4df159f06b |
---|---|
1 <!doctype html> | |
2 <html lang="en"> | |
3 <head> | |
4 <meta name="viewport" content="width=device-width, initial-scale=1"> | |
5 <script> | |
6 function resized() { | |
7 let imgs = document.querySelectorAll('img[rect]'); | |
8 for( let img of imgs ) { | |
9 img.style['border-radius'] = 0.3 * img.width + 'px'; | |
10 } | |
11 } | |
12 function loaded() { | |
13 resized(); | |
14 let imgs = document.querySelectorAll('img'); | |
15 for( let img of imgs ) { | |
16 img.style.visibility = 'visible'; | |
17 img.style['animation-play-state'] = 'running'; | |
18 } | |
19 } | |
20 </script> | |
21 <style> | |
22 body { | |
23 display: flex; | |
24 justify-content: center; | |
25 align-items: center; | |
26 height: 100vh; | |
27 margin: 0; | |
28 } | |
29 div { | |
30 width: 90%; | |
31 aspect-ratio: 950 / 535; | |
32 background-color: rgb(138, 127, 210); | |
33 position: relative; | |
34 } | |
35 div:hover img { | |
36 animation-play-state: paused; | |
37 } | |
38 img { | |
39 position: absolute; | |
40 top: 50%; | |
41 left: 50%; | |
42 transform: translate(-50%,-50%); | |
43 animation-duration: 7s; | |
44 animation-iteration-count: infinite; | |
45 box-shadow: 5px 5px 20px 1px rgba(0,0,0,0.5); | |
46 visibility: hidden; | |
47 animation-play-state: paused; | |
48 } | |
49 img[circle] { | |
50 border-radius: 50%; | |
51 } | |
52 img[bio] { | |
53 animation-name: bio; | |
54 width: 12%; | |
55 } | |
56 @keyframes bio { | |
57 0% { | |
58 opacity: 0; | |
59 transform: translate(-50%,-50%) scale(1); | |
60 } | |
61 15% { | |
62 opacity: 1; | |
63 transform: translate(-50%,-50%) scale(1.4375); | |
64 } | |
65 20%, 50% { | |
66 opacity: 1; | |
67 transform: translate(-50%,-50%) scale(1); | |
68 } | |
69 60% { | |
70 opacity: 1; | |
71 transform: translate(-50%,-50%) scale(1.1875); | |
72 } | |
73 65% { | |
74 opacity: 1; | |
75 transform: translate(-50%,-50%) scale(0.875); | |
76 } | |
77 70% { | |
78 opacity: 1; | |
79 transform: translate(-50%,-50%) scale(1.1875); | |
80 } | |
81 75% { | |
82 opacity: 1; | |
83 transform: translate(-50%,-50%) scale(0.875); | |
84 } | |
85 80%, 100% { | |
86 opacity: 1; | |
87 transform: translate(-50%,-50%) scale(1); | |
88 } | |
89 } | |
90 img[i1] { | |
91 animation-name: i1; | |
92 width: 14%; | |
93 } | |
94 @keyframes i1 { | |
95 0%, 28% { | |
96 opacity: 0; | |
97 top: 50%; | |
98 left: 50%; | |
99 } | |
100 38% { | |
101 opacity: 0.1; | |
102 } | |
103 48%, 78% { | |
104 opacity: 1; | |
105 top: 61%; | |
106 left: 89%; | |
107 } | |
108 85% { | |
109 opacity: 0.1; | |
110 } | |
111 90%, 100% { | |
112 opacity: 0; | |
113 top: 50%; | |
114 left: 50%; | |
115 } | |
116 } | |
117 img[i2] { | |
118 animation-name: i2; | |
119 width: 17%; | |
120 } | |
121 @keyframes i2 { | |
122 0%, 30% { | |
123 opacity: 0; | |
124 top: 50%; | |
125 left: 50%; | |
126 } | |
127 40% { | |
128 opacity: 0.1; | |
129 } | |
130 50%, 80% { | |
131 opacity: 1; | |
132 top: 74%; | |
133 left: 69%; | |
134 } | |
135 85% { | |
136 opacity: 0.1; | |
137 } | |
138 90%, 100% { | |
139 opacity: 0; | |
140 top: 50%; | |
141 left: 50%; | |
142 } | |
143 } | |
144 img[i3] { | |
145 animation-name: i3; | |
146 width: 15%; | |
147 } | |
148 @keyframes i3 { | |
149 0%, 26% { | |
150 opacity: 0; | |
151 top: 50%; | |
152 left: 50%; | |
153 } | |
154 36% { | |
155 opacity: 0.1; | |
156 } | |
157 46%, 76% { | |
158 opacity: 1; | |
159 top: 25%; | |
160 left: 75%; | |
161 } | |
162 85% { | |
163 opacity: 0.1; | |
164 } | |
165 90%, 100% { | |
166 opacity: 0; | |
167 top: 50%; | |
168 left: 50%; | |
169 } | |
170 } | |
171 img[i4] { | |
172 animation-name: i4; | |
173 width: 13%; | |
174 } | |
175 @keyframes i4 { | |
176 0%, 20% { | |
177 opacity: 0; | |
178 top: 50%; | |
179 left: 50%; | |
180 } | |
181 30% { | |
182 opacity: 0.1; | |
183 } | |
184 40%, 70% { | |
185 opacity: 1; | |
186 top: 76%; | |
187 left: 32%; | |
188 } | |
189 85% { | |
190 opacity: 0.1; | |
191 } | |
192 90%, 100% { | |
193 opacity: 0; | |
194 top: 50%; | |
195 left: 50%; | |
196 } | |
197 } | |
198 img[i5] { | |
199 animation-name: i5; | |
200 width: 16%; | |
201 } | |
202 @keyframes i5 { | |
203 0%, 22% { | |
204 opacity: 0; | |
205 top: 50%; | |
206 left: 50%; | |
207 } | |
208 32% { | |
209 opacity: 0.1; | |
210 } | |
211 42%, 72% { | |
212 opacity: 1; | |
213 top: 56%; | |
214 left: 12%; | |
215 } | |
216 85% { | |
217 opacity: 0.1; | |
218 } | |
219 90%, 100% { | |
220 opacity: 0; | |
221 top: 50%; | |
222 left: 50%; | |
223 } | |
224 } | |
225 img[i6] { | |
226 animation-name: i6; | |
227 width: 14%; | |
228 } | |
229 @keyframes i6 { | |
230 0%, 24% { | |
231 opacity: 0; | |
232 top: 50%; | |
233 left: 50%; | |
234 } | |
235 24% { | |
236 opacity: 0.1; | |
237 } | |
238 44%, 74% { | |
239 opacity: 1; | |
240 top: 20%; | |
241 left: 26%; | |
242 } | |
243 85% { | |
244 opacity: 0.1; | |
245 } | |
246 90%, 100% { | |
247 opacity: 0; | |
248 top: 50%; | |
249 left: 50%; | |
250 } | |
251 } | |
252 img[ins] { | |
253 animation-name: ins; | |
254 width: 7%; | |
255 } | |
256 @keyframes ins { | |
257 0%, 30% { | |
258 opacity: 0; | |
259 top: 50%; | |
260 left: 50%; | |
261 } | |
262 40% { | |
263 opacity: 0.1; | |
264 } | |
265 50%, 80% { | |
266 opacity: 1; | |
267 top: 25%; | |
268 left: 58%; | |
269 } | |
270 85% { | |
271 opacity: 0.1; | |
272 } | |
273 90%, 100% { | |
274 opacity: 0; | |
275 top: 50%; | |
276 left: 50%; | |
277 } | |
278 } | |
279 img[tk] { | |
280 animation-name: tk; | |
281 width: 7%; | |
282 } | |
283 @keyframes tk { | |
284 0%, 32% { | |
285 opacity: 0; | |
286 top: 50%; | |
287 left: 50%; | |
288 } | |
289 42% { | |
290 opacity: 0.1; | |
291 } | |
292 52%, 82% { | |
293 opacity: 1; | |
294 top: 45%; | |
295 left: 35%; | |
296 } | |
297 85% { | |
298 opacity: 0.1; | |
299 } | |
300 90%, 100% { | |
301 opacity: 0; | |
302 top: 50%; | |
303 left: 50%; | |
304 } | |
305 } | |
306 img[yt] { | |
307 animation-name: yt; | |
308 width: 7%; | |
309 } | |
310 @keyframes yt { | |
311 0%, 34% { | |
312 opacity: 0; | |
313 top: 50%; | |
314 left: 50%; | |
315 } | |
316 44% { | |
317 opacity: 0.1; | |
318 } | |
319 54%, 84% { | |
320 opacity: 1; | |
321 top: 23%; | |
322 left: 43%; | |
323 } | |
324 85% { | |
325 opacity: 0.1; | |
326 } | |
327 90%, 100% { | |
328 opacity: 0; | |
329 top: 50%; | |
330 left: 50%; | |
331 } | |
332 } | |
333 </style> | |
334 </head> | |
335 <body onload="loaded()" onresize="resized()"> | |
336 <div> | |
337 <img bio rect src="https://test.linkmy.style/images/home/bio.png"> | |
338 <img i1 rect src="https://test.linkmy.style/images/home/i1.png"> | |
339 <img i2 rect src="https://test.linkmy.style/images/home/i2.png"> | |
340 <img i3 rect src="https://test.linkmy.style/images/home/i3.png"> | |
341 <img i4 rect src="https://test.linkmy.style/images/home/i4.png"> | |
342 <img i5 rect src="https://test.linkmy.style/images/home/i5.png"> | |
343 <img i6 rect src="https://test.linkmy.style/images/home/i6.png"> | |
344 <img ins circle src="https://test.linkmy.style/images/home/ins.png"> | |
345 <img tk circle src="https://test.linkmy.style/images/home/tk.png"> | |
346 <img yt circle src="https://test.linkmy.style/images/home/yt.png"> | |
347 </div> | |
348 </body> | |
349 </html> |