* Tooltip link styles *
.my-section .tooltip a {
color: white;
text-decoration: underline;
}
.my-section .tooltip a:hover {
color: #ddd;
}
* Scoped Tooltip and Modal styles *
.my-section .info-icon {
position: relative;
display: inline-block;
cursor: pointer;
font-size: 12px;
vertical-align: super;
}
.my-section .info-icon img {
width: 15px;
height: 15px;
}
.my-section .tooltip {
visibility: hidden;
background-color: #006983;
color: #fff;
text-align: left;
border-radius: 5px;
padding: 15px;
position: absolute;
z-index: 100;
bottom: 125%;
left: 50%;
transform: translateX(-50%);
opacity: 0;
transition: opacity 0.4s;
width: 330px;
max-width: 380px;
white-space: normal;
font-size: 15px;
box-sizing: border-box;
}
.my-section .info-icon:hover .tooltip,
.my-section .info-icon:focus .tooltip {
visibility: visible;
opacity: 1;
}
.my-section .tooltip::after {
content: ;
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
border-width: 5px;
border-style: solid;
border-color: #006983 transparent transparent transparent;
}
* Adjustments for Mobile Devices *
@media (max-width: 768px) {
.my-section .tooltip {
position: fixed;
bottom: auto;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 90%;
max-width: 300px;
padding: 20px;
box-sizing: border-box;
}
.my-section .tooltip::after {
display: none;
}
.my-section .info-icon:hover .tooltip,
.my-section .info-icon:focus .tooltip {
visibility: visible;
opacity: 1;
}
}
* Scoped Modal styles *
.my-section .modal {
display: none;
position: fixed;
z-index: 999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 105, 131, 0.8);
}
.my-section .modal-content {
font-size: 12px;
margin: 15% auto;
padding: 20px;
width: 100%;
max-width: 850px;
}
.my-section .modal img {
width: 100%;
height: auto;
}
.my-section .close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.my-section .close:hover,
.my-section .close:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
document.addEventListener( DOMContentLoaded , function () {
Get modal elements
var modal = document.getElementById( myModal );
var openModalLinks = document.querySelectorAll( #openModal, #openModalEverything );
var closeModal = document.querySelector( .close );
Open modal when the link is clicked
openModalLinks.forEach(function(link) {
link.addEventListener( click , function(event) {
event.preventDefault(); Prevent default link behavior
modal.style.display = block ; Show the modal
});
});
Close modal when the X button is clicked
closeModal.addEventListener( click , function() {
modal.style.display = none ; Hide the modal
});
Close modal if the user clicks outside the modal content
window.addEventListener( click , function(event) {
if (event.target === modal) {
modal.style.display = none ; Hide the modal
}
});
Tooltip display adjustment for mobile
var infoIcons = document.querySelectorAll( .my-section .info-icon );
infoIcons.forEach(function(icon) {
var tooltip = icon.querySelector( .tooltip );
Function to show tooltip
function showTooltip() {
tooltip.style.visibility = visible ;
tooltip.style.opacity = 1 ;
}
Function to hide tooltip
function hideTooltip() {
tooltip.style.visibility = hidden ;
tooltip.style.opacity = 0 ;
}
Event listeners for desktop (hover)
icon.addEventListener( mouseenter , function() {
if (window.innerWidth > 768) {
showTooltip();
}
});
icon.addEventListener( mouseleave , function() {
if (window.innerWidth > 768) {
hideTooltip();
}
});
Event listener for mobile (click)
icon.addEventListener( click , function(event) {
if (window.innerWidth <= 768) {
event.stopPropagation();
if (tooltip.style.visibility === visible ) {
hideTooltip();
} else {
Hide any other visible tooltips
document.querySelectorAll( .my-section .tooltip ).forEach(function(t) {
t.style.visibility = hidden ;
t.style.opacity = 0 ;
});
showTooltip();
}
}
});
});
Hide tooltip when clicking outside on mobile
document.addEventListener( click , function(event) {
if (window.innerWidth <= 768) {
document.querySelectorAll( .my-section .tooltip ).forEach(function(tooltip) {
tooltip.style.visibility = hidden ;
tooltip.style.opacity = 0 ;
});
}
});
});