Chart.js 将标签变成链接

2024-04-02

我不确定如果不做以下事情是否可能:在 HTML 画布中创建链接 https://stackoverflow.com/questions/6215841/create-links-in-html-canvas但让我们确定一下。

有没有一种方法(相对)简单地将 Chart.js 标签转换为链接?所讨论的图表是雷达图:http://www.chartjs.org/docs/#radar-chart http://www.chartjs.org/docs/#radar-chart(到目前为止,我一直在使用图例,只需进行一些库修改即可正常工作,但现在我应该使用标签本身。)


您可以侦听单击事件,然后循环遍历所有 pointLabels 检查单击是否在该框中。如果是这种情况,您可以从包含所有标签的数组中获取相应的标签。

然后就可以打开使用了window.location = link or window.open(link)转到您的链接。

点击后在谷歌上搜索颜色的示例:

const options = {
  type: 'radar',
  data: {
    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
    datasets: [{
        label: '# of Votes',
        data: [12, 19, 3, 5, 2, 3],
        borderColor: 'orange'
      },
      {
        label: '# of Points',
        data: [7, 11, 5, 8, 3, 7],
        borderColor: 'pink'
      }
    ]
  },
  options: {
    onClick: (evt, activeEls, chart) => {
      const {
        x,
        y
      } = evt;
      let index = -1;

      for (let i = 0; i < chart.scales.r._pointLabelItems.length; i++) {
        const {
          bottom,
          top,
          left,
          right
        } = chart.scales.r._pointLabelItems[i];

        if (x >= left && x <= right && y >= top && y <= bottom) {
          index = i;
          break;
        }
      }

      if (index === -1) {
        return;
      }

      const clickedLabel = chart.scales.r._pointLabels[index];

      window.open(`https://www.google.com/search?q=color%20${clickedLabel}`); // Blocked in stack snipet. See fiddle
      console.log(clickedLabel)
    }
  }
}

const ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
<body>
  <canvas id="chartJSContainer" width="600" height="400"></canvas>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.6.0/chart.js"></script>
</body>

Fiddle: https://jsfiddle.net/Leelenaleee/fnqr4c7j/22/ https://jsfiddle.net/Leelenaleee/fnqr4c7j/22/

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

Chart.js 将标签变成链接 的相关文章

  • $_POST 返回空

    尝试练习一下 ajax 和 PHP 我不明白为什么每当我发送一些东西时 它都会返回空或未定义的索引 PHP 返回空 JS form submit function var meth this attr action var msg msg
  • 在 iPad 上调试 Javascript

    我想知道人们是否找到了任何有用的工具来在未越狱的 iPad 上调试 javascript 这是一款用于工作的 iPad 因此无法越狱 通过一些繁琐的步骤 我已经在 iPad 上运行了 firebug lite 但是我的 javascript
  • 在 Node.js 中包含另一个文件中的 JavaScript 类定义

    我正在为 Node js 编写一个简单的服务器 并且使用我自己的类 名为User看起来像 function User socket this socket socket this nickname null just the typical
  • mocha.opts 已弃用,如何迁移到 package.json?

    我正在开发一个大型项目 自从上周我更新了摩卡以来 现在我们收到警告 DeprecationWarning 通过 mocha opts 进行的配置已被弃用并且 将从 Mocha 的未来版本中删除 使用 RC 文件或 改为 package js
  • 弃用警告:时刻构造回退到 js Date

    我正在尝试转换这个日期时间 150423160509 这是 utc 日期时间 改为以下格式 2015 04 24 00 05 09 本地时区 通过使用 moment js var moment require moment timezone
  • 有没有办法将 Google 文档分割成多个 PDF?

    我想在 Google Scripts VBA 代码中复制我为 Word 文档编写的代码 基本上 它通过搜索我插入文档中的标签 将文档 切片 为多个 PDF 文件 目的是允许合唱团使用 forScore 管理乐谱的应用程序 在切片点插入先前注
  • Javascript - 使数组索引 toLowerCase() 不起作用

    我试图将所有数组索引设置为小写字符串 但它不起作用 我在这里查看了其他答案并尝试了他们的解决方案 例如使用toString 添加之前toLowerCase但它不起作用 这很奇怪 我创建了一个问题的jsfiddlehere https jsf
  • 如何从对象数组中删除所有重复项?

    This is a large array of objects e g let totalArray id rec01dTDP9T4ZtHL4 fields user id 170180717 user name abcdefg even
  • 光标:IE 8 和 9 中的自动行为

    我想要的是为整个正文标记指定cursor pointer 这样页面的背景是可点击的 但我也希望页面的其余部分像以前一样工作 所以我尝试为div设置cursor auto 其中包含这一页 在 FF Chrome 和 safari 中 它工作得
  • 如何将查询参数添加到守卫中的路由并将其传递给 Angular 4 中的组件?

    我在我的 Angular 4 应用程序中使用路由保护 如果条件满足并返回 true 我想向路由添加一个查询参数 这是我一直在研究的代码 Injectable export class ViewGuardService implements
  • 使用 jquery 更改锚文本和图标

    我有一个隐藏或显示 div 的锚标记 但我无法更改它的文本和图标 如何更改文本和图标标签 因为目前它将图标标签解析为常规文本 锚标记 a class collapse info btn i class icon arrow up icon
  • Chrome 跨域 PATCH 请求不起作用

    我有一个带有 REST Api 的网站 现在我正在创建一个浏览器扩展 它将从某些页面收集数据并将它们发送回 REST Api 因为我希望我的扩展能够与 Firefox 和 Chrome 兼容 并且易于维护 所以我将实际代码作为脚本标记注入到
  • 在Javascript中将RGB数组转换为RGBA数组的快速方法

    我正在使用的模拟器在内部存储 RGB 值的一维帧缓冲区 但是 HTML5 画布在调用 putImageData 时使用 RGBA 值 为了显示帧缓冲区 我当前循环遍历 RGB 数组并以某种方式创建一个新的 RGBA 数组与此类似 https
  • 使用淘汰赛动态显示/隐藏元素

    我有一个表 有四列 即代码 名称 数量和价格 其中 我想动态更改数量列的内容 元素 通常 它应该显示其中显示数量的元素 当用户单击元素时 我想显示该元素 以便用户可以编辑数量 我正在尝试按照 示例2 来实现淘汰赛文档链接 http knoc
  • 如何检查侧边栏视图是否已经在主干中渲染?

    通常 用户通过主页进入网站 然后我在那里渲染侧边栏视图 接下来 用户单击链接 路由器呈现另一个视图并替换原始内容视图 侧边栏视图不会重新渲染 当用户在子页面上单击刷新时 侧边栏不会呈现 如何检查视图是否存在并且已渲染 划分责任并坚持下去 不
  • 如何获取 Spotify API 的访问令牌?

    我已经研究 Spotify api 和示例源代码几天了 但我仍然不知道如何获取访问令牌来访问用户的播放列表数据 我已经到达了拉起登录窗口 用户登录 然后收到授权码的地步 此时 我尝试做这样的事情 window open https acco
  • jQuery 模板插件:如何创建双向绑定?

    我开始使用 jQuery 模板插件 微软创建的 但现在我面临这个问题 模板用于绑定到对象数组的一堆表单 当我更改其中一个表单上的某些内容时 我希望更新绑定的对象 但我不知道如何自动执行该操作 这是一个简单的例子 现实生活中的模板和对象要复杂
  • 引导网格中的绘图图周围有巨大的空白

    我有一个 Net 应用程序 我试图在其中使用创建一个图表bootstrap js and plotly js 当我创建响应式图表时 我遇到网格中存在巨大空白的问题 我发现问题的一部分是plotly svg container的大小默认高度为
  • “memset”没有 DLL 那么如何 ctype 它

    如何使用memset在 jsc 类型中 没有对应的 DLL 我搜索 搜索了 js ctype 代码 但找不到要破解的示例 如果你只是想memset一个数组为零字节 然后我有 好消息 大家 js ctypes 会将新数组初始化为零 否则 最简
  • 如何使用 Chart.js 版本 3.2.1 在圆环图中添加文本

    我正在使用 Canvas 在 HTML 中使用 如何使用在圆环图中添加文本 这是我的 javascript 代码和 HTML 代码 我使用了图表js版本3 2 1 所以请给出相同版本 3 的解决方案 var overallStatsCanv

随机推荐

  • STL 迭代器对结束(过去的结束)迭代器重新验证?

    请参阅有关尾后迭代器失效的相关问题 this https stackoverflow com questions 11350454 past the end iterator invalidation in c11 this https s
  • 根据区域设置的数字格式(逗号分隔)

    我需要显示一个数值 例如123456789 905采用以下格式123 456 789 90 但逗号分隔会根据手机中选择的区域设置而变化 就好像美国英语选择的逗号分隔是 3 个位置 如果选择印度英语 则就像12 34 56 789 90 我怎
  • 我可以删除 jQuery UI 选项卡的整个样式而不破坏其他 UI 组件的样式吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想完全自定义 jQuery UI 选项卡而不破坏 jQuery UI 日期选择器的样式 这是可行的还是我应该进行自定义工作而不使用
  • 我可以在自定义域中使用通配符子域吗?

    只是检查一下是否有人知道这是否可能 我想在 firebase 托管中使用通配符子域 并使用函数来解析子域 不可以 Firebase Hosting 目前不支持通配符子域 这是我们将来想做的事情 但目前没有时间表或具体计划可以分享
  • React 流程图库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个流程图库 它可以帮助我在 React 中创建如下所示的流程图 如果添加类似演示的链接 我将非常
  • 由于空对象引用,无法将新对象添加到 RealmList

    我必须领域对象 一个是带有两个字符串和一个布尔值的基本 RealmObject 另一个只是该对象的 RealmList 以便于访问 当我尝试从 ContactBook 实例获取列表并添加新对象时 我尝试在空对象引用上调用虚拟方法 但是 我能
  • 无法绑定到“for”,因为它不是已知的本机属性 angular2

    我必须动态创建一个复选框列表 因此我使用 ngFor 来迭代对象数组 直到迭代为止一切正常 当我设置值时出现问题forlabel标签中的属性 角度抛出错误 无法绑定到 for 因为它不是已知的本机属性 angular2 新的错误消息 未处理
  • Java 8 lambda 表达式与只有一个方法的抽象类[重复]

    这个问题在这里已经有答案了 我正在学习 Java 8 中的 lambda 表达式 有人可以向我解释如何将 lambda 表达式与只有一种方法的抽象类一起使用 如果可能的话 例如 这是抽象类 public abstract class Cla
  • 在构建服务器上运行 UI 自动化测试

    我们使用 UI Automation 和 Nunit 为 WPF 应用程序创建测试 UI 测试 我们创建的测试在您从本地计算机运行时可以正常工作 这些测试从未在我们的构建服务器 使用 TeamCity 上成功运行 打开应用程序窗口后 构建始
  • CKEditor editor1.insertHtml() 不适合我

    我正在使用 CKEditor 来编辑帖子的评论 我也在使用 JQuery 因为每个帖子可能有多个评论 所以我试图将其全部基于班级 下面的函数应该隐藏注释的显示区域 将显示区域中的文本插入到编辑器中 最后显示编辑器 function fnCo
  • 监视一组文件的更改并在更改时对其执行命令

    我想到的 命令行 界面如下所示 watching FILE do COMMAND ARGS and COMMAND ARGS 凡出现 in COMMAND替换为已更改的文件的名称 并注意 do and and 是关键字 例如 gt watc
  • Ajax 请求 net_error = -3 (ERR_ABORTED)

    我似乎无法弄清楚为什么会发生这种情况 它只是偶尔发生一次 我应该指出 如果这有什么影响的话 我正在使用卫星互联网 在网络间隔中 这是我捕获的 2725 URL REQUEST https testsite com wp json api a
  • OS X / iOS - 使用 AudioConverterFillComplexBuffer 进行缓冲区的采样率转换

    我正在为一个项目编写一个 CoreAudio 后端名为 XAL 的音频库 http libxal googlecode com 输入缓冲器可以具有不同的采样率 我使用单个音频单元进行输出 想法是在将缓冲区发送到音频单元之前对其进行转换和混合
  • Android 无法使用 soundpool 播放某些 wav 文件?

    某些 wav 文件我无法使用 soundpool 播放 我什么也听不到 有些文件播放得很好 为什么 code AudioManager mgr AudioManager context getSystemService Context AU
  • 如何将矩阵(列表列表)中的所有值增加 n?

    我必须创建一个函数 将矩阵作为参数传递 然后将矩阵中每个项目的值增加n通过使用嵌套循环 例如 如果我的矩阵是 8 9 4 6 7 2 and n 1 我想要的输出是 9 10 5 7 8 3 您可以编写一个简单的函数来迭代列表 以将每个元素
  • cygwin rsync协议错误

    我正在尝试在 64 位 Windows 7 和 64 位 Linux 之间 rsync 文件 我在两台机器上都安装了 rsync 3 0 7 Windows 上的 cygwin 版本 这是我在 Windows 上运行的命令 我看到它正在建立
  • 初始数据夹具中的用户

    我在默认情况下创建了一些用户fixtures initial data json从而有一些测试 科目 我遇到的问题是密码生成 我可以在 字段 中设置密码 但这不会生成哈希密码 model auth user pk 1 fields user
  • std::make_unique 和 std::unique_ptr 与 new 之间的差异

    Does std make unique有任何效率优势 例如std make shared 与手动构建相比std unique ptr std make unique
  • 有序列表 CSS 样式包括父编号

    我们希望使用 CSS 创建一个如下所示的有序列表 A A 1 A 2 B C C 1 C 2 C 2 1 C 2 2 您如何将父索引包含在子索引中 你需要使用CSS 计数器 https developer mozilla org en US
  • Chart.js 将标签变成链接

    我不确定如果不做以下事情是否可能 在 HTML 画布中创建链接 https stackoverflow com questions 6215841 create links in html canvas但让我们确定一下 有没有一种方法 相对