I try to give an example from the Google developer site and I get an error: "TypeError: Illegal constructor. What happened and how to fix it?
class FancyButton extends HTMLButtonElement { constructor() { super(); // always call super() first in the ctor. this.addEventListener('click', e => this.drawRipple(e.offsetX,e.offsetY)); } // Material design ripple animation. drawRipple(x, y) { let div = document.createElement('div'); div.classList.add('ripple'); this.appendChild(div); // div.style.top = '${y - div.clientHeight/2}px'; // div.style.left = '${x - div.clientWidth/2}px'; div.style.backgroundColor = 'currentColor'; div.classList.add('run'); div.addEventListener('transitionend', e => div.remove()); } } customElements.define('fancy-button', FancyButton, {extends: 'button'}); let button = new FancyButton(); button.textContent = 'Fancy button!'; button.disabled = true;
source share