|
|
@@ -33,7 +33,7 @@ async function render() {
|
|
|
</td>
|
|
|
`;
|
|
|
const output = tr.querySelector('td')!;
|
|
|
- output.title = p.recipe;
|
|
|
+ output.dataset.tooltip = p.recipe;
|
|
|
tbody.appendChild(tr);
|
|
|
}
|
|
|
}
|
|
|
@@ -44,6 +44,24 @@ function color(n: number, low: number, high: number): string {
|
|
|
return `color-mix(in oklch, #0c8 ${scale * 100}%, #f70)`;
|
|
|
}
|
|
|
|
|
|
+const main = document.querySelector('main')!;
|
|
|
+const popover = document.querySelector('#popover') as HTMLElement;
|
|
|
+main.addEventListener('mouseover', (event) => {
|
|
|
+ const target = event.target as HTMLElement;
|
|
|
+ if (target.dataset.tooltip) {
|
|
|
+ popover.textContent = target.dataset.tooltip;
|
|
|
+ const rect = target.getBoundingClientRect();
|
|
|
+ popover.style.left = `${rect.left}px`;
|
|
|
+ popover.style.top = `${rect.bottom}px`;
|
|
|
+ popover.showPopover();
|
|
|
+ }
|
|
|
+});
|
|
|
+main.addEventListener('mouseout', (event) => {
|
|
|
+ const target = event.target as HTMLElement;
|
|
|
+ if (target.dataset.tooltip)
|
|
|
+ popover.hidePopover();
|
|
|
+});
|
|
|
+
|
|
|
lowVolume.addEventListener('change', render);
|
|
|
render();
|
|
|
|