master
Jure Podgoršek 2018-03-19 16:58:10 +01:00
parent ffd2bbde27
commit b3c0da0407
2 changed files with 107 additions and 61 deletions

View File

@ -1,10 +1,11 @@
//const branje = 6666 const branje = 6666
//const branjeNaslova = 1700 const branjeNaslova = 1700
const mrmranje = 1000 const mrmranje = 1000
// Debug: za hitrenje // Debug: za hitrenje
const branje = 66 //const branje = 66
const branjeNaslova = 10 //const branjeNaslova = 10
//const mrmranje = 10
const naslov = [ const naslov = [
"MANIFEST", "MANIFEST",
@ -38,53 +39,76 @@ const introTekst = [
"PSSS: Mučitelj hodi po literarnih večerih." "PSSS: Mučitelj hodi po literarnih večerih."
] ]
const zaporedje = [ const za = x => ({
{ vsebina: "",
len: 0,
pavza: x
})
const zb = {
vsebina: "neprekinjeno", vsebina: "neprekinjeno",
len: 500, len: 650,
pavza: 100 pavza: 250
}, }
{ const zc = {
vsebina: "nizanje", vsebina: "nizanje",
len: 500, len: 400,
pavza: 100 pavza: 200
}, }
{ const zd = {
vsebina: "istih", vsebina: "istih",
len: 500, len: 350,
pavza: 100 pavza: 150
}, }
{ const ze = {
vsebina: "glasov", vsebina: "glasov",
len: 500, len: 350,
pavza: 500 pavza: 100
}, }
{ const zf = {
vsebina: "je", vsebina: "je",
len: 200, len: 160,
pavza: 100 pavza: 40
}, }
{ const zg = {
vsebina: "dobesedno", vsebina: "dobesedno",
len: 666, len: 450,
pavza: 100 pavza: 200
}, }
{ const zgb = {
vsebina: "dobesed",
len: 400,
pavza: 200
}
const zh = {
vsebina: "slušni", vsebina: "slušni",
len: 500, len: 400,
pavza: 100 pavza: 100
}, }
{ const zi = {
vsebina: "dražljaj", vsebina: "dražljaj",
len: 666, len: 666,
pavza: 300 pavza: 250
} }
const strb = (len, pavza) => ({
len,
pavza
})
const zaporedje = [
za(1200), zb, zc, zd, ze, zf, zg, zh, zi,
za(300), zb, zc, zd, ze, zf, zgb, strb(1300, 0),
za(0), zb, zc, zd, ze, zf, zg, zh, zi,
za(300), zb, zc, zd, ze, zf, zgb, strb(1200, 0),
za(0), zb, zc, zd, ze, zf, zg, zh, zi,
za(0), zb, zc, zd, ze, zf, zgb, strb(1300, 0),
za(0), zb, zc, zd, ze, zf, strb(1850, 0),
za(0), zb, zc, zd, ze, zf, zg, strb(1200, 0),
] ]
const barvA = barva => barva ? "white" : "black" const barvA = barva => barva ? "white" : "black"
const barvB = barva => barva ? "black" : "white" const barvB = barva => barva ? "black" : "white"
const zamenjajBarve = barva => { function zamenjajBarve (barva) {
document.body.style.backgroundColor = barvA(barva) document.body.style.backgroundColor = barvA(barva)
document.crka.style.color = barvB(barva) document.crka.style.color = barvB(barva)
document.barva = !barva document.barva = !barva
@ -92,8 +116,21 @@ const zamenjajBarve = barva => {
const zamenjajCrko = crka => document.crka.innerHTML = crka const zamenjajCrko = crka => document.crka.innerHTML = crka
function strobe (timestamp) {
zamenjajBarve(document.barva)
if (timestamp < document.koncajStrobe) requestAnimationFrame(strobe)
}
function startStrobe(timestamp) {
document.koncajStrobe += timestamp
requestAnimationFrame(strobe)
}
function animacija(kosi, stevec) { function animacija(kosi, stevec) {
const konec = kosi.reduce((stk, kos) => { const konec = kosi.reduce((stk, kos) => {
// Crka?
if (kos.vsebina !== undefined) {
kos.vsebina.split("").map((crka, idx, { length }) => { kos.vsebina.split("").map((crka, idx, { length }) => {
setTimeout(() => { setTimeout(() => {
zamenjajBarve(document.barva) zamenjajBarve(document.barva)
@ -102,22 +139,26 @@ function animacija(kosi, stevec) {
}) })
setTimeout(() => zamenjajCrko(""), stk + kos.len + 0.05) setTimeout(() => zamenjajCrko(""), stk + kos.len + 0.05)
//Strobe?
} else {
setTimeout(() => {
zamenjajCrko("")
document.koncajStrobe = kos.len
requestAnimationFrame(startStrobe)
}, stk)
}
return stk + kos.len + kos.pavza return stk + kos.len + kos.pavza
}, stevec) }, stevec)
// Na koncu ponovimo vajo
setTimeout(() => { setTimeout(() => {
zamenjajCrko("") zamenjajCrko("")
const ponovitev = new Date().getTime() + 4000
console.log("strobe!", ponovitev) animacija(zaporedje, 0)
const strobe = timestamp => { document.zvok.pause()
document.zamenjajBarve(document.barva) document.zvok.currentTime = 0
(timestamp < ponovitev) ? requestAnimationFrame(strobe) : setTimeout(zacetek, ponovitev) document.zvok.play()
}
requestAnimationFrame(strobe)
strobe()
}, konec) }, konec)
} }
@ -129,6 +170,7 @@ const podnaslovljenje = (kosi, stevec) => {
const pricetek = stevec + kosi.length * branjeNaslova + mrmranje const pricetek = stevec + kosi.length * branjeNaslova + mrmranje
setTimeout(() => { setTimeout(() => {
document.crka.style.fontSize = "16rem" document.crka.style.fontSize = "16rem"
document.zvok.play()
}, pricetek) }, pricetek)
animacija(zaporedje, pricetek) animacija(zaporedje, pricetek)
} }
@ -165,6 +207,7 @@ const zacetek = () => {
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
document.barva = true document.barva = true
document.crka = document.getElementById("crka") document.crka = document.getElementById("crka")
document.zvok = document.getElementById("zvok")
document.zamenjajBarve = zamenjajBarve document.zamenjajBarve = zamenjajBarve
document.body.style.backgroundColor = "white" document.body.style.backgroundColor = "white"

View File

@ -21,5 +21,8 @@
</head> </head>
<body> <body>
<span id="crka"></span> <span id="crka"></span>
<audio id="zvok" preload="auto">
<source src="zvok.oga" type="audio/ogg" />
</audio>
</body> </body>
</html> </html>