我怎样才能增强这一点

时间:2016-07-27 14:58:57

标签: javascript svg

我想在" A"添加另一个连接器阻止" C"块。如何增强以下代码片段以达到我的要求?请参阅图像和jsfidle链接

https://jsfiddle.net/dw03zj39/

enter image description here

var divA      = document.querySelector("#a");
var divB      = document.querySelector("#b");
var connector = document.querySelector("#connector");

var drawConnector = function() {
  var posnA = {
    x: divA.offsetLeft + divA.offsetWidth,
    y: divA.offsetTop  + divA.offsetHeight / 2
  };
  var posnB = {
    x: divB.offsetLeft,
    y: divB.offsetTop  + divA.offsetHeight / 2
  };
  var dStr =
      "M" +
      (posnA.x      ) + "," + (posnA.y) + " " +
      "C" +
      (posnA.x + 100) + "," + (posnA.y) + " " +
      (posnB.x - 100) + "," + (posnB.y) + " " +
      (posnB.x      ) + "," + (posnB.y);
  connector.setAttribute("d", dStr);
};

window.addEventListener("resize", drawConnector);

drawConnector();

1 个答案:

答案 0 :(得分:0)

从"制作"和"到"元素参数。

以下内容应该有效:

var divA      = document.querySelector("#a");
var divB      = document.querySelector("#b");
var divC      = document.querySelector("#c");
var connector = document.querySelector("#connector");

var drawConnector = function(from, to) {
  var posnA = {
    x: from.offsetLeft + from.offsetWidth,
    y: from.offsetTop  + from.offsetHeight / 2
  };
  var posnB = {
    x: to.offsetLeft,
    y: to.offsetTop  + to.offsetHeight / 2
  };
  var dStr =
      "M" +
      (posnA.x      ) + "," + (posnA.y) + " " +
      "C" +
      (posnA.x + 100) + "," + (posnA.y) + " " +
      (posnB.x - 100) + "," + (posnB.y) + " " +
      (posnB.x      ) + "," + (posnB.y);
  connector.setAttribute("d", dStr);
};

function drawAllConnectors()
{
  drawConnector(divA, divB);
  drawConnector(divA, divC);
}

window.addEventListener("resize", drawAllConnectors);

drawAllConnectors();