Optimize parallax
This commit is contained in:
parent
5a87d2db71
commit
da9d0a1136
15 changed files with 135 additions and 207 deletions
|
|
@ -10,3 +10,17 @@ export const randomFactory = seed => () =>
|
|||
((2 ** 31 - 1) & (seed = Math.imul(48271, seed))) / 2 ** 31;
|
||||
|
||||
export const fixedSeedRandom = randomFactory(42);
|
||||
|
||||
export const choose = <T>(
|
||||
list: Array<T>,
|
||||
random: () => number = fixedSeedRandom
|
||||
): T => list[randomInInterval(0, list.length, random)];
|
||||
|
||||
export const randomInInterval = (
|
||||
aClosed: number,
|
||||
bOpen: number,
|
||||
random: () => number = fixedSeedRandom
|
||||
): number => Math.floor((bOpen - aClosed) * random()) + aClosed;
|
||||
|
||||
export const sum = (list: ArrayLike<number>): number =>
|
||||
Array.prototype.reduce.call(list, (a, sum) => a + sum, 0);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ export abstract class PageElement {
|
|||
}
|
||||
|
||||
protected setElement(value: HTMLElement) {
|
||||
this.getElement()?.parentElement?.replaceChild(value, this.getElement());
|
||||
this.element = value;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export class Page extends PageElement {
|
|||
{ type: PageEventType.eventGeneratorChanged, data: this },
|
||||
this
|
||||
);
|
||||
rootElement.append(...children.map(e => e.getElement()));
|
||||
rootElement.append(...children.map(e => e.getElement()).filter(e => e));
|
||||
this.giveEvent({ type: PageEventType.onLoad }, this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue