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 {
|
export function fadeTo(newPane: Pane): void {
|
||||||
for (const pane of allPanes) {
|
for (const pane of allPanes) {
|
||||||
const here = pane == newPane;
|
|
||||||
const elem = document.getElementById(pane)!;
|
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';
|
elem.dataset.state = 'entering';
|
||||||
setTimeout(() => elem.dataset.state = 'active');
|
setTimeout(() => elem.dataset.state = 'active');
|
||||||
// elem.addEventListener('transitionend',
|
|
||||||
// () => elem.dataset.state = 'active',
|
|
||||||
// {once: true});
|
|
||||||
history.replaceState(null, '🦎', `#${pane}`);
|
history.replaceState(null, '🦎', `#${pane}`);
|
||||||
} else if (elem.dataset.state == 'active') {
|
} else if (elem.dataset.state == 'active') {
|
||||||
elem.addEventListener('transitionend',
|
// hide old pane
|
||||||
() => elem.dataset.state = 'hidden',
|
//
|
||||||
{once: true});
|
// - "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';
|
elem.dataset.state = 'leaving';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue