JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://jsplumbtoolkit.com/js/jquery.jsPlumb-1.5.3-min.js"></script>
<div class="component window" id="window1">w1</div>
<div class="component window" id="window1s1"></div>
<div class="component window" id="window1s2"></div>
<div class="component window" id="window2">w2</div>
<div class="component window" id="window3">w3</div>
<div class="component window" id="window4">w4</div>
CSS
.window {
background: blue;
width:240px;
height:110px;
position: absolute;
color: white;
}
#window1 { top:189px; left:20px; }
#window1s1 { width:1px; height:1px; top:244px; left:319px; }
#window1s2 { width:1px; height:1px;background:red; top:405px; left:319px; }
#window2 { top:60px; left:360px; }
#window3 { top:220px; left:360px; }
#window4 { top:350px; left:360px; }
JavaScript
jsPlumb.ready(function() {
// default settings for connectors
var connectionParams = {
connector: ["Flowchart", {cornerRadius:1}],
paintStyle:{
lineWidth: 1,
outlineColor:"blue",
outlineWidth: 0
},
detachable:false,
endpointStyle: { radius:1 }
};
// w1 <=> w1s1
jsPlumb.connect({
source: "window1",
target: "window1s1",
anchors: ["Right", "Center"]
}, connectionParams);
// w1s1 <=> w1s2
jsPlumb.connect({
source: "window1s1",
target: "window1s2",
anchors: ["Center", "Center"]
}, connectionParams);
// w1s1 <=> w2
jsPlumb.connect({
source: "window1s1",
target: "window2",
anchors: ["TopCenter", "Left"]
}, connectionParams);
// w1s1 <=> w3
jsPlumb.connect({
source: "window1s1",
target: "window3",
anchors: ["BottomCenter", "Left"]
}, connectionParams);
// w1s2 <=> w4
jsPlumb.connect({
source: "window1s2",
target: "window4",
anchors: ["Right", "Left"]
}, connectionParams);
//
jsPlumb.draggable(
jsPlumb.getSelector(".window"),
{ containment:".demo"}
);
});