handle tooltip text updates

This commit is contained in:
geoffrey45
2022-09-06 13:02:56 +03:00
parent 70ef709170
commit 90514c8080
2 changed files with 43 additions and 35 deletions
-1
View File
@@ -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);
+24 -15
View File
@@ -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,20 +11,13 @@ function hideTooltip() {
tooltip.style.visibility = "hidden"; tooltip.style.visibility = "hidden";
} }
export default { function handleHover(el: HTMLElement, text: string, isHovered: Ref<boolean>) {
updated(el, binding) {
let isHovered = false;
if (tooltip === undefined) {
tooltip = getTooltip();
}
el.addEventListener("mouseover", () => { el.addEventListener("mouseover", () => {
isHovered = true; isHovered.value = true;
tooltip.innerText = text;
setTimeout(() => { setTimeout(() => {
if (isHovered) { if (isHovered.value) {
tooltip.innerText = binding.value;
tooltip.style.visibility = "visible"; tooltip.style.visibility = "visible";
createPopper(el, tooltip, { createPopper(el, tooltip, {
@@ -43,13 +36,29 @@ export default {
], ],
}); });
} }
}, 1500); }, 2000);
}); });
}
let isHovered = ref(false);
el.addEventListener("mouseout", () => { export default {
isHovered = false; state: {},
mounted(el: HTMLElement, binding) {
if (tooltip === undefined) {
tooltip = getTooltip();
}
handleHover(el, binding.value, isHovered);
["mouseout", "click"].forEach((event) => {
el.addEventListener(event, () => {
isHovered.value = false;
hideTooltip(); hideTooltip();
}); });
});
},
updated(el, binding) {
el.removeEventListener("mouseover", () => {});
handleHover(el, binding.value, isHovered);
}, },
beforeUnmount(el: HTMLElement) { beforeUnmount(el: HTMLElement) {
hideTooltip(); hideTooltip();