window.onload = main; var d = document; var container; var button; function main() { console.log("JS loaded!"); container = d.getElementById("container"); addListeners(d.body, 'click', createbutton); } function addListeners(e, a, f) { e.addEventListener(a, f); } class Button { constructor(f) { this.element = d.createElement("div"); this.element.id = "Button"; this.element.innerHTML = "

Button

"; container.appendChild(this.element); addListeners(this.element, 'mouseover', HoverButton.applyShadow); addListeners(this.element, 'mouseout', HoverButton.applyUnshadow); addListeners(this.element, 'mouseout', HoverButton.applyUnpush); addListeners(this.element, 'mousedown', PushButton.applyPush); addListeners(this.element, 'mouseup', PushButton.applyUnpush); } } class HoverButton extends Button { constructor() { super(); } static applyShadow() { button.element.style.boxShadow = "5px 5px 5px #6C5B7B"; } static applyUnshadow() { button.element.style.boxShadow = "none"; } } class PushButton extends Button { constructor() { super(); } static applyPush(elem) { button.element.style.backgroundColor = "#C06C84"; } static applyUnpush(elem) { button.element.style.backgroundColor = "#F67280"; } } function createbutton() { console.log(container.children); if(container.children.length == 0) { button = new Button(); console.log("button created!"); } d.body.removeEventListener("click", createbutton); }