【发布时间】:2015-07-22 08:56:41
【问题描述】:
我目前正在尝试实现一种与现有功能略有不同的缩放功能。
实际上,我希望如果用户在图表上单击并拖动它会放大如此定义的域。我想这样做是因为鼠标滚轮会阻止用户向上/向下翻页。
由于 C3.js API 似乎无法实现,我尝试按照 D3.js Drag Behaviour 上的这个小演练来实现拖动事件。
但是,我没有很好地理解它,因为当我在图表上尝试它时它不起作用。
这是我的代码示例:
function setHandlers() {
/**
* A custom drag event to zoom on the graph
*/
var drag = d3.behavior.drag();
d3.selectAll('.c3-event-rects').on(".drag", null);
drag
.on('dragstart', function (d) {
d3.event.sourceEvent.stopPropagation();
console.log("start");
console.log(d)
})
.on('drag', function (d) {
console.log("on bouge :)")
})
.on('dragend', function (d) {
console.log("end");
console.log(d)
})
}
每当我刷新我的图表时我都会调用这个函数,并且我已经编写了一个双击的自定义处理程序(在同一个函数中,但为了更清楚我把它关闭了)。我想知道如何在 C3.js 图表中成功触发拖动事件,尤其是 dragstart 和 dragend 事件?
【问题讨论】:
-
感谢您分享您的经验,但这个地方是用来发布问题的。请问您的具体问题是什么?
-
抱歉,我忘记了我的帖子的这一部分,因为我非常专注于解释我的问题。这是我的帖子的编辑版本,我在其中添加了我的问题。我想知道如何在 C3.js 图表中成功触发拖动事件,尤其是 dragstart 和 dragend 事件?
-
你在谷歌上搜索过d3 drag behaviour example吗?
-
是的。我刚刚对我的代码进行了更改,它现在可以工作了。 var drag = d3.behavior.drag() .on("drag", function () { }) d3.selectAll('.c3-event-rects').call(drag) 现在我需要恢复对应的x开头和结尾的点似乎很棘手。非常感谢酷蓝
-
@Seddiki Anass - 你把这件事彻底解决了吗?干杯!
标签: javascript d3.js event-handling dom-events c3.js