【发布时间】:2018-06-01 19:46:15
【问题描述】:
我正在使用 snapSVG 的 group 方法对一些元素进行分组,将它们推送到一个数组中,并通过遍历每个元素对数组元素应用拖动方法。
能否请您帮助我在拖动停止处理程序中访问被拖动元素 (grps[i]) 的索引位置。
g1 和 var g2 是两个组。 grps 是包含两个组的数组。
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.5.1/snap.svg-min.js"></script>
</head>
JavaScript
var s = Snap(800, 600);
var grps = [];
var objects = [];
var red = s.rect(50, 50, 200, 200).attr({
fill: "red"
});
var green = s.rect(60, 60, 100, 100).attr({
fill: "green"
});
var g1 = s.group(red, green);
grps.push(g1);
var red = s.rect(300, 50, 200, 200).attr({
fill: "red"
});
var green = s.rect(310, 60, 100, 100).attr({
fill: "green"
});
var g2 = s.group(red, green);
grps.push(g1, g2);
var drag_move = function(dx, dy) {
this.attr({
transform: this.data('origTransform') + (this.data('origTransform') ? "T" : "t") + [dx, dy]
});
};
var drag_start = function() {
this.data('origTransform', this.transform().local);
};
var drag_stop = function(i) {
console.log("finished dragging");
console.log(i);
};
for (i = 0; i < grps.length; i++) {
grps[i].drag(drag_move, drag_start, drag_stop);
}
JsBin 链接:http://jsbin.com/tonazosicu/10/edit?js
谢谢
【问题讨论】:
-
始终在问题中添加代码的相关部分并添加外部链接仅供参考。
标签: javascript jquery svg snap.svg