首页 > 代码库 > D3 drag行为

D3 drag行为

d3.behavior.drag():创建一个新的拖动行为。

drag.on(type[,listener]):

type:开始,拖动,结束。

如果没有listener,则为type指定已注册的listener。但我测试时,如果不加listener时会出错。

drag会返回x,y,可根据origin来修改,在局部坐标系统(svg)。dx,dy是相对于开始坐标的。

拖动期间,浏览器的默认行为会被阻止,比如点击事件。也可以阻止冒泡。

drag.origin([origin]):决定拖动开始的位置。

不设置的话会出错?不会,不设置就是不使用这个方法,而不是.origin()。

如果为空,则元素拖动开始的位置为鼠标的位置;如果设置了,就正常了。

当绑定在元素上的数据时用x,y的object来表示的话,源存取器经常用function(d){return d;},但是没提能改成什么样的?

 

20140430

svg:svg:sof上的解释是,前者是namespace,后者是tag,D3只支持几种命名空间。不是selection的意思。

用namespace可以区分其他基于xml的语言;xhtml,svg会有相同的标签名,用namespace来区分。

drag:两个比较好的例子:http://bl.ocks.org/mbostock/1557377;https://gist.github.com/enjalot/1378144;

问题:同样是移动,为什么listener不一样呢?