(function(){ function init(){ const config = { text: "God Påske", eggs: 12, grass: "https://cdn.gocms1.com/themes/easter2/grass5.png", bunny: "https://cdn.gocms1.com/themes/easter2/rabit.png", start: "2026-03-16", end: "2026-04-05" }; const today = new Date().toISOString().split("T")[0]; if(config.start && today < config.start) return; if(config.end && today > config.end) return; if(!document.body){ setTimeout(init,50); return; } /* STYLE */ const style = document.createElement("style"); style.innerHTML = ` #easter-overlay{position:fixed;bottom:0;left:0;width:100%;height:100%;z-index:9999999999;overflow:hidden;} .easter-grass{position:absolute;bottom:0;width:100%;height:120px;background:url('${config.grass}') repeat-x bottom;background-size:auto 120px;} .easter-bunny-wrap{position:absolute;bottom:-20px;right:10px;transform:translateY(200px);animation:bunnyPop 1.2s ease forwards;} .easter-bunny{width:220px;} @keyframes bunnyPop{0%{transform:translateY(200px);opacity:0;}100%{transform:translateY(0);opacity:1;}} .easter-sign{position:absolute;bottom:140px;right:150px;background:#fff;padding:12px 20px;border-radius:10px;box-shadow:0 10px 20px rgba(0,0,0,0.2);opacity:0;transform:translateY(20px);transition:.4s;} .easter-sign.show{opacity:1;transform:translateY(0);} .easter-egg{position:absolute;width:40px;opacity:0;animation:eggPop .6s ease forwards;} @keyframes eggPop{0%{transform:translateY(40px) scale(.5);opacity:0;}70%{transform:translateY(-5px) scale(1.1);opacity:1;}100%{transform:translateY(0) scale(1);opacity:1;}} `; document.head.appendChild(style); /* HTML */ const overlay = document.createElement("div"); overlay.id = "easter-overlay"; overlay.innerHTML = `
${config.text}
`; document.body.appendChild(overlay); setTimeout(()=>document.getElementById("speech").classList.add("show"),400); document.addEventListener("click",()=>overlay.remove()); /* EGGS */ const eggImages = [ "https://cdn.gocms1.com/themes/easter2/egg1.png", "https://cdn.gocms1.com/themes/easter2/egg2.png", "https://cdn.gocms1.com/themes/easter2/egg3.png", "https://cdn.gocms1.com/themes/easter2/egg4.png", "https://cdn.gocms1.com/themes/easter2/egg5.png", "https://cdn.gocms1.com/themes/easter2/egg6.png", "https://cdn.gocms1.com/themes/easter2/egg7.png", "https://cdn.gocms1.com/themes/easter2/egg8.png", "https://cdn.gocms1.com/themes/easter2/egg9.png" ]; let lastEgg = null; function getRandomEgg(){ let img; do{ img = eggImages[Math.floor(Math.random()*eggImages.length)]; } while(img === lastEgg); lastEgg = img; return img; } let placed = []; let i = 0; function isValid(x){ for(let p of placed){ if(Math.abs(p-x)<60)return false; } return true; } function spawnEggs(){ function spawn(){ if(i>=config.eggs) return; const egg = document.createElement("img"); egg.src = getRandomEgg(); egg.className = "easter-egg"; let x, attempts=0; do{ x=Math.random()*(window.innerWidth-60); attempts++; }while(!isValid(x)&&attempts<50); placed.push(x); let rotate=(Math.random()*30)-15; egg.dataset.baseRotate = rotate; egg.style.left=x+"px"; egg.style.bottom=(Math.random()*20)+"px"; egg.style.rotate = rotate+"deg"; egg.style.scale = 0.85 + Math.random()*0.3; overlay.appendChild(egg); /* KLÆK */ setTimeout(()=>{ function eggShake(){ let shakes=0; const interval=setInterval(()=>{ let randomRotate=(Math.random()*8)-4; let base=parseFloat(egg.dataset.baseRotate); let scale=1+(Math.random()*0.03); egg.style.rotate = (base+randomRotate)+"deg"; egg.style.scale = scale; shakes++; if(shakes>6){ clearInterval(interval); egg.style.rotate = base+"deg"; egg.style.scale = 1; } },60+Math.random()*40); } eggShake(); setInterval(()=>eggShake(),3000+Math.random()*5000); /* IDLE */ function idleMove(){ let base=parseFloat(egg.dataset.baseRotate); let drift=(Math.random()*4)-2; egg.style.rotate = (base+drift)+"deg"; egg.style.scale = 1 + (Math.random()*0.03); setTimeout(()=>{ egg.style.rotate = base+"deg"; egg.style.scale = 1; },400+Math.random()*400); } function idleLoop(){ let delay = 2000 + Math.random()*4000; setTimeout(()=>{ idleMove(); idleLoop(); },delay); } idleLoop(); },600+Math.random()*1200); i++; setTimeout(spawn,250+Math.random()*400); } spawn(); } setTimeout(spawnEggs,900); } if(document.readyState==="loading"){ document.addEventListener("DOMContentLoaded",init); }else{ init(); } })();