page-flip
Version:
Powerful, simple and flexible JS Library for creating realistic and beautiful page turning effect
60 lines (47 loc) • 1.47 kB
text/typescript
import { UI } from './UI';
import { PageFlip } from '../PageFlip';
import { FlipSetting } from '../Settings';
/**
* UI for HTML mode
*/
export class HTMLUI extends UI {
private items: NodeListOf<HTMLElement> | HTMLElement[];
constructor(
inBlock: HTMLElement,
app: PageFlip,
setting: FlipSetting,
items: NodeListOf<HTMLElement> | HTMLElement[]
) {
super(inBlock, app, setting);
// Second wrapper to HTML page
this.wrapper.insertAdjacentHTML('afterbegin', '<div class="stf__block"></div>');
this.distElement = inBlock.querySelector('.stf__block');
this.items = items;
for (const item of items) {
this.distElement.appendChild(item);
}
this.setHandlers();
}
public clear(): void {
for (const item of this.items) {
this.parentElement.appendChild(item);
}
}
/**
* Update page list from HTMLElements
*
* @param {(NodeListOf<HTMLElement>|HTMLElement[])} items - List of pages as HTML Element
*/
public updateItems(items: NodeListOf<HTMLElement> | HTMLElement[]): void {
this.removeHandlers();
this.distElement.innerHTML = '';
for (const item of items) {
this.distElement.appendChild(item);
}
this.items = items;
this.setHandlers();
}
public update(): void {
this.app.getRender().update();
}
}