Hej, mam taki problem:
Tworzę stronę, której strona początkowa to powitanie oraz wybór języka na kliknięcie w ikonę. Po tym wyborze strona powitalna znika (dostaje display:none) i na jej miejsce wchodzi strona główna, która tym samym klikiem traci klasę hidden (z display block). Problem polega jednak na tym, iż na stronie głównej znajdują się animacje wjeżdżania elementów kolejno z lewej krawędzi ekranu oraz z prawej, a także elementy dostają spowolnione opacity:1.
Wszystko działa, ale tylko jeśli kliknięcie odbędzie się tuż po załadowaniu strony powitalnej (dosłownie chwilę po), wtedy animację działają, jednakże jeśli strona powitalna "powisi" dłużej to już animacji brak (lub tylko końcowe etapy widoczne po kliknięciu). Wszystko opiera się głównie na delay() oraz setTimeout.
Bardzo proszę o pomoc w zdiagnozowaniu problemu.
Oto kod:
//Main site hidden on page start
mainSite.addClass('hidden');
// Polish language selected
polish.on('click', function () {
intro.animate({opacity: '0'}, 1200);
setTimeout(function () {
intro.addClass('hidden')
},1201);
languageBox.animate({opacity: '0'}, 1200);
setTimeout(function () {
languageBox.addClass('hidden')
},1201);
introContainer.animate({opacity: '0'}, 1200);
setTimeout(function () {
introContainer.addClass('hidden')
},1201);
setTimeout(function () {
mainSite.removeClass('hidden');
},1201);
});
// English language selected
english.on('click', function () {
intro.animate({opacity: '0'}, 1200);
setTimeout(function () {
intro.addClass('hidden')
},1201);
languageBox.animate({opacity: '0'}, 1200);
setTimeout(function () {
languageBox.addClass('hidden')
},1201);
});
// about-me-polish slide in from left
aboutMe.delay(2500).css("margin-left",-$(this).width()).animate({
marginLeft:0
}, 1000);
//site-logo-polish slide in from right
siteLogo.delay(2500).css("margin-right",-$(this).width()).animate({
marginRight:0
}, 1000);