javascript - 如何使用鼠标单击并拖动来放大D3

标签 javascript d3.js

我是 D3 的新手,想实现类似于此处显示的单击-拖动-缩放:http://www.highcharts.com/demo/line-time-series

我已经构建了一个折线图,但对如何实现它感到困惑。

我想我需要一些 JS 事件处理程序来找到我的 mousedown 和 mouseup 发生的位置。但是,如何创建用户拖动时图形上出现的阴影?

最佳答案

d3.js 中,您可能需要使用 brush 来完成此操作。您可以在 http://bl.ocks.org/1962173 查看我放在一起的示例它做类似的事情。

相关代码为:

var brush = d3.svg.brush()
    .x(x)
    .extent([d3.time.monday(now),d3.time.saturday.ceil(now)])
    .on("brush", display);

其中display 是一个根据brush 当前范围重绘数据的函数。这样你就不需要尝试 Hook 你自己的处理程序,甚至根本不需要担心调整突出显示区域的大小。

关于javascript - 如何使用鼠标单击并拖动来放大D3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302768/

相关文章:

javascript - 如何在opencv JS中读取图像

javascript - 从远程服务器调用 JavaScript 函数

d3.js - 在 D3 v4 TreeMap 中隐藏根节点和边

javascript - 使用 d3 和 topojson 绘制 map

javascript - 如何使 D3.js 中的力布局图响应屏幕/浏览器大小

javascript - 如何使用 Javascript 单击按钮来增加 Iframe 的尺寸?

Javascript 日期范围 slider 在 Chrome 中工作,但在其他浏览器中不起作用?

d3.js - 如何处理D3中多层嵌套的数据?

c# - 如何在 JavaScript 中的复选框 checkin 上启用和禁用 Ajax 评级控制

javascript - d3js分组条形图切换图例