tooltip template
by James Connolly
HTML
<div class="tooltip-map">
<!-- 1 -->
<div class="tooltip" style="left: 20px; top: 20px;">
<div class="tooltip-inner">
<div class="tooltip-icon">
<span> view details</span>
</div>
<div class="tooltip-content">
<ul>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
</ul>
</div>
</div>
</div>
<!-- 2 -->
<div class="tooltip" style="left: 25%; top: 25%;">
<div class="tooltip-inner">
<div class="tooltip-icon">
<span> view details</span>
</div>
<div class="tooltip-content">
<ul>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
</ul>
</div>
</div>
</div>
</div>
SCSS
body {
margin: 0;
padding: 0;
}
// relative area you can place tooltips
.tooltip-map {
background: pink;
height: 100vh;
position: relative;
&.active-tooltip {
.tooltip {
opacity: 0;
visibility: visible;
&.inview {
opacity: 0;
visibility: visible;
background: purple;
}
}
}
}
.tooltip {
position: absolute;
z-index: 10;
background: orange;
// tooltip inner (needed for absolute positioning of content)
.tooltip-inner {
position: relative;
}
// tooltip icon
.tooltip-icon {
width: 40px;
height: 40px;
border-radius: 500px;
border: 2px solid #fff;
background: blue;
color: #fff;
text-align: center;
cursor: pointer;
transition: box-shadow 0.5s ease-in, transform 0.7s cubic-bezier(0.86, 0, 0.07, 1);
z-index: 2;
position: relative;
span {
font-size: 0;
}
&::before,
&::after {
content: "";
display: block;
border-radius: 500px;
background: #fff;
position: absolute;
left: 50%;
top: 50%;
}
&::before {
width: 2px;
height: 14px;
margin-left: -1px;
margin-top: -7px;
}
&::after {
width: 14px;
height: 2px;
margin-left: -7px;
margin-top: -1px;
}
&:hover {
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
transform: rotate(135deg) scale(1.1);
}
}
// tooltip content
.tooltip-content {
width: 200px;
padding: 25px;
background: #fff;
z-index: 1;
position: absolute;
left: 10px;
top: 10px;
}
}
JavaScript
(function($) {
$('.tooltip').click(function() {
$('tooltip-map').addClass('active-tooltip');
$(this).addClass('inview');
});
$('.modal-close').click(function() {
$('body').removeClass('modal-inview');
$('.modal').removeClass('open');
});
})(jQuery);