d3.js - 根据标签关系切换 元素上的属性/样式

2024-01-09

StackBlitz 演示 https://stackblitz.com/edit/github-dzry6q-agcn5s?file=src%2Fapp%2Fdirected-graph-experiment.service.ts,src%2Fapp%2Fapp.module.ts - stackblitz 在 chrome 中很脆弱 https://github.com/stackblitz/core/issues/162,可能不显示预览。我将 Edge 与 stackBlitz 一起使用,在移动版 chrome 上也很好用。

我创建了这个力导向图,其中有多个标签附加到位于<line>。单击这些标签时,它会更新<line>它涉及到的。问题是,当单击相应路径/线条元素上的另一个标签时,先前的样式状态不会被删除。

如果这是一个标签,则结构会有所不同,并且可以使用.selectall并瞄准.class属性。但由于这些标签是用它们自己的路径和线条循环的,所以变得有点棘手。

第286行相关代码:

svg.selectAll('.edgelabel').on('click', function (d) {
  // arrow function will produce this = undefined
  _d3.selectAll('.nodeText').style('fill', 'black');
  _d3.selectAll('.edgelabel').style('fill', '#999');
  _d3.select(this).style('fill', 'blue');

  const thisLine = linkEnter.filter((e) => e.index === d.index);

  if (d.lineStyle === 'Confirmed') {
    console.log('Confirmed', d.lineStyle);
    thisLine.style('stroke', '#444');
    thisLine.style('stroke-dasharray', '0');
  } else if (d.lineStyle === 'Unconfirmed') {
    console.log('Unconfirmed', d.lineStyle);
    thisLine.style('stroke-dasharray', '8, 5');
  }
});

如果标签的值为确认的它将线条样式设置为一部分,然后未证实应该以另一种方式设计自己的线条,但同时确认的线条需要“消失”样式,这样您就看不到它了。

StackBlitz 演示 https://stackblitz.com/edit/github-dzry6q-agcn5s?file=src%2Fapp%2Fdirected-graph-experiment.service.ts,src%2Fapp%2Fapp.module.ts


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

d3.js - 根据标签关系切换 元素上的属性/样式 的相关文章

随机推荐

  • 如何在 iOS 和 Android 应用程序的 React Native 中禁用字体缩放?

    设备字体大小的放大有时会中断 样式方面 禁用字体缩放可能会损害应用程序的可访问性 理想情况下 如果您想限制使用 React Native 0 58 0 及更高版本的应用程序的缩放 使用maxFontSizeMultiplier prop h
  • HTTP 请求被视为超时的默认时间是多少?

    对于 PHP HTTP 请求被视为超时的默认时间是多少 我正在使用 PECL HTTP 扩展来发出 HTTP 请求 我可以在发出请求时设置超时限制 但是我想知道如果没有明确指定任何内容 默认值是什么 我查遍了 PHP 手册 但没有结果 我希
  • 在android中以编程方式创建vCard文件

    我使用以下代码来读取联系人并创建 vcard 文件 String lookupKey cur getString cur getColumnIndex Contacts LOOKUP KEY Uri uri Uri withAppended
  • TextInputEditText 无法转换为 TextInputLayout

    我的活动中有此代码 public class RegisterActivity extends AppCompatActivity private static final String TAG RegisterActivity class
  • 如何删除composer php中的所有测试?

    我是作曲家开发方面的新手 我刚刚开始在当前的项目中与作曲家合作 我认为我的问题之前已经被问过 或者我对作曲家很菜鸟 D 每个依赖项的供应商中有许多测试文件和目录 我只想在将其上传到服务器之前删除这些测试 是否有任何命令可以删除这些测试或者我
  • 找到第二个最接近值的索引

    我在用 index np abs array value argmin 查找数组中与某个值的绝对差值最小的索引 但是 有没有像这样的干净方法来查找second最接近该值的索引 我认为这有效 a np linspace 0 10 30 arr
  • 在 Ruby 中解析文件时跳过行的最快方法?

    我尝试寻找这个 但找不到太多 这似乎是以前可能被问过的问题 很多次 所以如果是这样的话 我深表歉意 我想知道在 Ruby 中解析文件某些部分的最快方法是什么 例如 假设我know我想要的特定函数的信息位于 1000 行文件的第 500 行和
  • 从 URL 中提取主机名

    我必须在 sql 中将网站名称修剪为 com 或 co in 示例 假设我的站点地址为 http stackoverflow com questions ask title trim 我需要得到 stackoverflow com 的结果
  • 使用 JLabels 更新图像的正确方法

    我正在创建一个 GUI 并且对 swing 和 awt 相当陌生 我正在尝试创建一个 gui 在启动时将背景设置为图像 然后使用一种方法来创建某种幻灯片 我已经尝试过 并且我不执着于代码 因此我能够接受修订和 或全新概念 编辑 9 15 1
  • 在 dart 中将 `const` 值赋给 `final` 变量的目的是什么? [复制]

    这个问题在这里已经有答案了 所以我正在做第一个例子 https flutter io get started codelab 对于 Flutter 以及以下 步骤4 创建无限滚动的ListView 我遇到了这段代码 class Random
  • 一起使用必需属性和只读属性

    我正在创建一个 HTML5 网络表单 其中一个输入用于地理位置 通过单击按钮 它插入 GPS 坐标 来填充 由于此输入必须是必需的并且必须是只读的 我不希望用户在其中写入自定义数据 因此如何处理这个问题 HTML5不允许使用required
  • HTML/CSS:页面总宽度比内容宽

    我遇到一个奇怪的问题 找不到原因 我有以下网页 http uk translation vocabulary com de german http uk translation vocabulary com de german并且页面的感知
  • 如何根据开始时间和持续时间计算结束时间?

    我正在构建一个事件日历并将开始时间传递给 PHP 格式为 2009 09 25 15 00 00 持续时间也会被传递 其格式可能为 60 分钟或 3 小时 从小时转换为分钟不是问题 如何在已建立的起点上添加时间长度以正确设置结束时间的格式
  • 如何在 swift5 和 Alamofire 5 beta 版本中获取并保存响应?

    我尝试了一些代码 但我的问题仍然没有解决 请帮助我 我是快速代码的新手 let parameters Parameters skey XXXXXX country code 91 mobile XXX004 user role 4 AF r
  • Butterknife 8.4.0 - 未找到 ID 为“android-apt”的插件

    我不断收到错误消息Plugin with id android apt not found 这里出了什么问题 plugins id me tatarka retrolambda version 3 2 5 apply plugin com
  • 带有文本的警报对话框,后跟一个复选框和 2 个按钮

    我需要弹出警报对话框 就像 EULA 屏幕一样 其中将包含描述 EULA 的文本 并带有 不再显示此内容 复选框 最后有 2 个 确定 和 取消 按钮 如何将文本视图和复选框作为警报对话框的一部分 我必须同意 Mudassir 的观点 EU
  • PHP 中的 Response.End

    有没有相当于Response End in PHP exit die flush
  • 未找到以下类:android.support.v4.widget.DrawerLayout

    我正在 Android Studio 中开发一个项目 其中我必须使用导航抽屉 一切都运行良好 最近 Android Studio 更新到 1 2 版本 突然导航抽屉停止渲染的活动给了我这个错误 我知道这是一个已知错误 以前也发生过这种情况
  • Google 地图 v3 - 客户端上的地图图块缓存?

    我正在为一个项目使用 Google Maps JS API v3 有没有办法让地图在客户端计算机上缓存图块 以便当他们刷新浏览器时 图块不必再次下载 我的许多客户都使用蜂窝连接 重新下载地图需要相当长的时间 Thanks 默认情况下 谷歌地
  • d3.js - 根据标签关系切换 元素上的属性/样式

    StackBlitz 演示 https stackblitz com edit github dzry6q agcn5s file src 2Fapp 2Fdirected graph experiment service ts src 2