Live timer element
We already have <time-formatted>
element to show a nicely formatted time.
Create <live-timer>
element to show the current time:
- It should use
<time-formatted>
internally, not duplicate its functionality. - Ticks (updates) every second.
- For every tick, a custom event named
tick
should be generated, with the current date inevent.detail
(see chapter Dispatching custom events).
Usage:
<live-timer id="elem"></live-timer>
<script>
elem.addEventListener('tick', event => console.log(event.detail));
</script>
Demo:
Please note:
- We clear
setInterval
timer when the element is removed from the document. That’s important, otherwise it continues ticking even if not needed any more. And the browser can’t clear the memory from this element and referenced by it. - We can access current date as
elem.date
property. All class methods and properties are naturally element methods and properties.