From 0b9f79e1b779d727588cb9aa475a1cad1c8f237d Mon Sep 17 00:00:00 2001
From: Dinu Blanovschi <git@dnbln.dev>
Date: Wed, 29 May 2024 19:53:23 +0000
Subject: [PATCH] feat(graph): obsidianLikeFocusOnHover (#1017)
---
quartz/components/scripts/graph.inline.ts | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts
index 1c9bb5d..e8dec4c 100644
--- a/quartz/components/scripts/graph.inline.ts
+++ b/quartz/components/scripts/graph.inline.ts
@@ -223,6 +223,18 @@
.transition()
.duration(200)
.style("opacity", 0.2)
+
+ d3.selectAll<HTMLElement, NodeData>(".node")
+ .filter((d) => !connectedNodes.includes(d.id))
+ .nodes()
+ .map((it) => d3.select(it.parentNode as HTMLElement).select("text"))
+ .forEach((it) => {
+ let opacity = parseFloat(it.style("opacity"))
+ it.transition()
+ .duration(200)
+ .attr("opacityOld", opacity)
+ .style("opacity", Math.min(opacity, 0.2))
+ })
}
// highlight links
@@ -245,6 +257,12 @@
if (focusOnHover) {
d3.selectAll<HTMLElement, NodeData>(".link").transition().duration(200).style("opacity", 1)
d3.selectAll<HTMLElement, NodeData>(".node").transition().duration(200).style("opacity", 1)
+
+ d3.selectAll<HTMLElement, NodeData>(".node")
+ .filter((d) => !connectedNodes.includes(d.id))
+ .nodes()
+ .map((it) => d3.select(it.parentNode as HTMLElement).select("text"))
+ .forEach((it) => it.transition().duration(200).style("opacity", it.attr("opacityOld")))
}
const currentId = d.id
const linkNodes = d3
--
Gitblit v1.10.0