|
|
$(document).ready(function () {
|
|
|
const envelope = $('#envelope');
|
|
|
const openBtn = $("#openBtn");
|
|
|
const resetBtn = $("#resetBtn");
|
|
|
|
|
|
let currentPage = 1;
|
|
|
const totalPages = 23;
|
|
|
let isOpen = false;
|
|
|
|
|
|
envelope.on('click', function () {
|
|
|
if (isOpen) nextLyric();
|
|
|
});
|
|
|
|
|
|
openBtn.on('click', function () {
|
|
|
envelope.removeClass("close").addClass("open");
|
|
|
isOpen = true;
|
|
|
openBtn.hide();
|
|
|
resetBtn.show();
|
|
|
});
|
|
|
|
|
|
resetBtn.on('click', function () {
|
|
|
envelope.removeClass("open").addClass("close");
|
|
|
isOpen = false;
|
|
|
setTimeout(function () {
|
|
|
currentPage = 1;
|
|
|
updateActivePage();
|
|
|
resetBtn.hide();
|
|
|
openBtn.show();
|
|
|
}, 600);
|
|
|
});
|
|
|
|
|
|
function nextLyric() {
|
|
|
currentPage = currentPage < totalPages ? currentPage + 1 : 1;
|
|
|
updateActivePage();
|
|
|
}
|
|
|
|
|
|
function updateActivePage() {
|
|
|
$(".lyric-page").removeClass("active");
|
|
|
$("#page" + currentPage).addClass("active");
|
|
|
}
|
|
|
});
|
|
|
|
|
|
const openBtn = document.getElementById("openBtn");
|
|
|
const resetBtn = document.getElementById("resetBtn");
|
|
|
const envelope = document.getElementById("envelope");
|
|
|
const audio = document.getElementById("sound");
|
|
|
|
|
|
let hasPlayed = false;
|
|
|
|
|
|
function playAudioOnce() {
|
|
|
audio.currentTime = 21;
|
|
|
if (!hasPlayed) {
|
|
|
audio.play().then(() => {
|
|
|
hasPlayed = true;
|
|
|
}).catch((e) => {
|
|
|
console.log("Không thể phát nhạc:", e);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
openBtn.addEventListener("click", function () {
|
|
|
envelope.classList.remove("close");
|
|
|
envelope.classList.add("open");
|
|
|
openBtn.style.display = "none";
|
|
|
resetBtn.style.display = "inline-block";
|
|
|
playAudioOnce();
|
|
|
});
|
|
|
|
|
|
resetBtn.addEventListener("click", function () {
|
|
|
envelope.classList.remove("open");
|
|
|
envelope.classList.add("close");
|
|
|
openBtn.style.display = "inline-block";
|
|
|
resetBtn.style.display = "none";
|
|
|
playAudioOnce();
|
|
|
});
|
|
|
|
|
|
const starField = document.querySelector('.star-field');
|
|
|
|
|
|
for (let i = 0; i < 200; i++) {
|
|
|
const star = document.createElement('div');
|
|
|
star.classList.add('star');
|
|
|
|
|
|
const x = Math.random() * 100;
|
|
|
const y = Math.random() * 100;
|
|
|
const delay = Math.random() * 5;
|
|
|
const duration = 2 + Math.random() * 3;
|
|
|
|
|
|
star.style.left = x + 'vw';
|
|
|
star.style.top = y + 'vh';
|
|
|
star.style.animationDelay = delay + 's';
|
|
|
star.style.animationDuration = duration + 's';
|
|
|
|
|
|
starField.appendChild(star);
|
|
|
}
|
|
|
|
|
|
function createSnowflake() {
|
|
|
const snow = document.createElement("div");
|
|
|
snow.classList.add("snowflake");
|
|
|
snow.textContent = "❄";
|
|
|
|
|
|
|
|
|
snow.style.left = Math.random() * 100 + "vw";
|
|
|
snow.style.animationDuration = 5 + Math.random() * 5 + "s";
|
|
|
snow.style.fontSize = (10 + Math.random() * 15) + "px";
|
|
|
|
|
|
document.body.appendChild(snow);
|
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
snow.remove();
|
|
|
}, 10000);
|
|
|
}
|
|
|
|
|
|
|
|
|
setInterval(createSnowflake, 150); |