@sgalinski/responsive-side-menu
Version:
A simple and extendable slide-in menu
29 lines (22 loc) • 672 B
JavaScript
export default class Plugin {
constructor(_attach = true) {
if (_attach) {
this.rootElement = Plugin.createElement();
this.rootElement.classList.add(`rsm-${this.getPluginName()}`);
this.attachElement();
}
}
static createElement() {
return document.createElement('LI');
}
attachElement() {
let referenceNode = document.querySelector('.rsm-header');
referenceNode.parentNode.insertBefore(this.rootElement, referenceNode.nextSibling);
}
getPluginName() {
throw new Error(`[Plugin ${this.constructor.name}]: Your Plugin has to override getPluginName to return a proper string-identifier`);
}
get element() {
return this.rootElement;
}
}