JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://code.jquery.com/jquery-3.4.1.slim.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css">
<script src="https://cdn.jsdelivr.net/npm/leader-line@1.0.7/leader-line.min.js"></script>
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Contact</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
the home tab
</div>
<div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">
the contact tab
<div id="callout" class="callout">
<div class="callout-header">Header</div>
<div class="callout-container">Location</div>
</div>
<div id="test">test</div>
</div>
</div>
CSS
.row {
background: #f8f9fa;
margin-top: 20px;
}
.col {
border: solid 1px #6c757d;
padding: 10px;
}
#test {
position: absolute;
top: 275px;
left: 600px;
background-color: #00ff00;
padding: 15px 5px;
}
.callout {
position: absolute;
top: 75px;
left: 250px;
margin-left: 20px;
max-width: 300px;
}
.callout-header {
padding: 10px 15px;
background: #555;
font-size: 24px;
color: white;
}
.callout-container {
padding: 15px 5px;
opacity: .75;
background-color: #00ff00;
color: black;
}
JavaScript
const line = new LeaderLine(
document.getElementById('callout'),
document.getElementById('test'),
{
path: 'arc',
color: 'red',
size: 2,
endPlug: 'arrow1',
hide: true
});
$('#contact-tab').on('shown.bs.tab', () => { line.position().show(); })
.on('hide.bs.tab', () => { line.hide(); });