comments
This commit is contained in:
parent
431e04c82b
commit
7ca1fa126d
1 changed files with 16 additions and 8 deletions
|
@ -260,19 +260,27 @@ namespace Flat {
|
|||
|
||||
export function fadeTo(newPane: Pane): void {
|
||||
for (const pane of allPanes) {
|
||||
const here = pane == newPane;
|
||||
const elem = document.getElementById(pane)!;
|
||||
if (here) {
|
||||
if (pane == newPane) {
|
||||
// show new pane
|
||||
//
|
||||
// - "entering" state is displayed and z-index 1, but opacity 0
|
||||
// - "active" state is fully showing
|
||||
//
|
||||
// "entering" exists because firefox doesn't animate a
|
||||
// transition out of `display: none`
|
||||
elem.dataset.state = 'entering';
|
||||
setTimeout(() => elem.dataset.state = 'active');
|
||||
// elem.addEventListener('transitionend',
|
||||
// () => elem.dataset.state = 'active',
|
||||
// {once: true});
|
||||
history.replaceState(null, '🦎', `#${pane}`);
|
||||
} else if (elem.dataset.state == 'active') {
|
||||
elem.addEventListener('transitionend',
|
||||
() => elem.dataset.state = 'hidden',
|
||||
{once: true});
|
||||
// hide old pane
|
||||
//
|
||||
// - "leaving" is z-index -1 and opacity 0
|
||||
// - "hidden" is `display: none`
|
||||
//
|
||||
// separate for the same reason as above
|
||||
function hide() { elem.dataset.state = 'hidden'; }
|
||||
elem.addEventListener('transitionend', hide, {once: true});
|
||||
elem.dataset.state = 'leaving';
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue