mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-05 13:03:02 +00:00
handle tooltip text updates
This commit is contained in:
@@ -53,7 +53,6 @@
|
|||||||
|
|
||||||
#acontent {
|
#acontent {
|
||||||
grid-area: content;
|
grid-area: content;
|
||||||
max-width: 1955px;
|
|
||||||
overflow: hidden scroll;
|
overflow: hidden scroll;
|
||||||
margin-right: -1rem;
|
margin-right: -1rem;
|
||||||
padding-right: calc($medium - 1px);
|
padding-right: calc($medium - 1px);
|
||||||
|
|||||||
+43
-34
@@ -1,4 +1,4 @@
|
|||||||
import { Directive } from "vue";
|
import { Directive, Ref, ref } from "vue";
|
||||||
import { createPopper } from "@popperjs/core";
|
import { createPopper } from "@popperjs/core";
|
||||||
|
|
||||||
let tooltip: HTMLElement;
|
let tooltip: HTMLElement;
|
||||||
@@ -11,46 +11,55 @@ function hideTooltip() {
|
|||||||
tooltip.style.visibility = "hidden";
|
tooltip.style.visibility = "hidden";
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
function handleHover(el: HTMLElement, text: string, isHovered: Ref<boolean>) {
|
||||||
updated(el, binding) {
|
el.addEventListener("mouseover", () => {
|
||||||
let isHovered = false;
|
isHovered.value = true;
|
||||||
|
tooltip.innerText = text;
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
if (isHovered.value) {
|
||||||
|
tooltip.style.visibility = "visible";
|
||||||
|
|
||||||
|
createPopper(el, tooltip, {
|
||||||
|
placement: "top",
|
||||||
|
modifiers: [
|
||||||
|
{
|
||||||
|
name: "offset",
|
||||||
|
options: {
|
||||||
|
offset: [0, 10],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "hide",
|
||||||
|
enabled: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, 2000);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let isHovered = ref(false);
|
||||||
|
|
||||||
|
export default {
|
||||||
|
state: {},
|
||||||
|
mounted(el: HTMLElement, binding) {
|
||||||
if (tooltip === undefined) {
|
if (tooltip === undefined) {
|
||||||
tooltip = getTooltip();
|
tooltip = getTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
el.addEventListener("mouseover", () => {
|
handleHover(el, binding.value, isHovered);
|
||||||
isHovered = true;
|
["mouseout", "click"].forEach((event) => {
|
||||||
|
el.addEventListener(event, () => {
|
||||||
setTimeout(() => {
|
isHovered.value = false;
|
||||||
if (isHovered) {
|
hideTooltip();
|
||||||
tooltip.innerText = binding.value;
|
});
|
||||||
tooltip.style.visibility = "visible";
|
|
||||||
|
|
||||||
createPopper(el, tooltip, {
|
|
||||||
placement: "top",
|
|
||||||
modifiers: [
|
|
||||||
{
|
|
||||||
name: "offset",
|
|
||||||
options: {
|
|
||||||
offset: [0, 10],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "hide",
|
|
||||||
enabled: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, 1500);
|
|
||||||
});
|
|
||||||
|
|
||||||
el.addEventListener("mouseout", () => {
|
|
||||||
isHovered = false;
|
|
||||||
hideTooltip();
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
updated(el, binding) {
|
||||||
|
el.removeEventListener("mouseover", () => {});
|
||||||
|
handleHover(el, binding.value, isHovered);
|
||||||
|
},
|
||||||
beforeUnmount(el: HTMLElement) {
|
beforeUnmount(el: HTMLElement) {
|
||||||
hideTooltip();
|
hideTooltip();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user