sauce
This commit is contained in:
parent
701e943c79
commit
ee10127800
|
@ -0,0 +1,48 @@
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
left: 50vw;
|
||||||
|
top: 50vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
main, main img {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.full {
|
||||||
|
width: 100vw;
|
||||||
|
height: 52.9vw;
|
||||||
|
left: -50vw;
|
||||||
|
top: -26.4vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.wm1 {
|
||||||
|
width: 21.5vw;
|
||||||
|
height: 16vw;
|
||||||
|
left: -44.6vw;
|
||||||
|
top: 1.5vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.wm2 {
|
||||||
|
width: 38.5vw;
|
||||||
|
height: 28.5vw;
|
||||||
|
left: 1.5vw;
|
||||||
|
top: -2.3vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.mac {
|
||||||
|
width: 25.3vw;
|
||||||
|
height: 13.8vw;
|
||||||
|
left: -23.1vw;
|
||||||
|
top: 7.7vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.shark {
|
||||||
|
width: 15.4vw;
|
||||||
|
height: 22.8vw;
|
||||||
|
left: -13.8vw;
|
||||||
|
top: -3.8vw;
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="./laundry-room.css">
|
||||||
|
<meta charset="utf8"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<img class="bg full" src="./img/basement.jpg"/>
|
||||||
|
<img class="wm wm1" src="./img/washingmachine.png"/>
|
||||||
|
<img class="mac back" src="./img/djset.png"/>
|
||||||
|
<img class="shark" src="./img/djshark.png"/>
|
||||||
|
<img class="mac frnt" src="./img/djset-justmac.png"/>
|
||||||
|
<img class="wm wm2" src="./img/washingmachine.png"/>
|
||||||
|
<img class="ov full" src="./img/overlay-r.png"/>
|
||||||
|
<img class="ov full" src="./img/overlay-g.png"/>
|
||||||
|
<img class="ov full" src="./img/overlay-u.png"/>
|
||||||
|
</main>
|
||||||
|
<script src="./laundry-room.js" type="text/javascript"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,58 @@
|
||||||
|
var E = (function () {
|
||||||
|
const images = Array.of.apply([], document.getElementsByTagName("img"));
|
||||||
|
const main = document.getElementsByTagName("main")[0];
|
||||||
|
const overlays = images.filter(e => e.classList.contains("ov"));
|
||||||
|
const wms = images.filter(e => e.classList.contains("wm"));
|
||||||
|
const shark = images.find(e => e.classList.contains("shark"));
|
||||||
|
|
||||||
|
const BG_W = 1300;
|
||||||
|
const BG_H = 688;
|
||||||
|
|
||||||
|
var strobeIdx = ~~(Math.random() * 999);
|
||||||
|
const nOverlays = overlays.length;
|
||||||
|
|
||||||
|
function strobe() {
|
||||||
|
if (Math.random() < 0.5) {
|
||||||
|
strobeIdx++;
|
||||||
|
} else {
|
||||||
|
strobeIdx--;
|
||||||
|
}
|
||||||
|
strobeIdx = (strobeIdx + nOverlays) % nOverlays;
|
||||||
|
for (var i = 0; i < nOverlays; i++) {
|
||||||
|
overlays[i].style.visibility = (i == strobeIdx) ? "visible" : "hidden";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var time0 = +new Date;
|
||||||
|
function elapsed() { return (new Date - time0) / 1000; }
|
||||||
|
|
||||||
|
var lastStrobe = -Infinity;
|
||||||
|
var lastShake = wms.map(_ => Math.random() * 0.2);
|
||||||
|
|
||||||
|
function animate() {
|
||||||
|
requestAnimationFrame(animate);
|
||||||
|
var t = elapsed();
|
||||||
|
|
||||||
|
if (t - lastStrobe > 0.5) {
|
||||||
|
lastStrobe = t;
|
||||||
|
strobe();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < wms.length; i++) {
|
||||||
|
if (t - lastShake[i] > 0.1) {
|
||||||
|
const dx = Math.random() * 0.2;
|
||||||
|
const dy = Math.random() * 0.2;
|
||||||
|
wms[i].style.transform = "translate(" + dx + "vw," + dy + "vw)";
|
||||||
|
lastShake[i] = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const shDy = 2 * Math.sin(elapsed() * 4.7);
|
||||||
|
const shRot = Math.sin(elapsed() * 7) * 3;
|
||||||
|
shark.style.transform = "translate(0," + shDy + "vw) rotate(" + shRot + "deg)";
|
||||||
|
}
|
||||||
|
|
||||||
|
animate();
|
||||||
|
|
||||||
|
return { main, overlays, shark, wms, strobe, animate };
|
||||||
|
})();
|
Loading…
Reference in New Issue