2016-07-27 207 views
-3

我想将另一个连接器添加到“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(); 
+0

你的问题是不完整的。请描述您想要实现的内容并发布代码以检查问题。 –

+0

问题更新与图像和jsfidle链接 – troshan

回答

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(); 
+0

它不工作https://jsfiddle.net/dw03zj39/1/ – troshan

+0

您需要在SVG中额外的连接器元素。 https://jsfiddle.net/dw03zj39/2/ –