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不一样呢?
原文地址:http://www.cnblogs.com/wang-jing/p/3700155.html