jQuery accessible simple tooltip window, using ARIA
JQuery 3.3.1, jquery-accessible-simple-tooltip-aria.js
Snippet by CodAmz
576 0
Resources
<h3>First simple example</h3>
<p>
<button class="js-simple-tooltip"
data-simpletooltip-text="Cool, it works!">
Hover or focus me to show the tooltip
</button>
</p>
<h3>Second simple example</h3>
<button class="js-simple-tooltip"
data-simpletooltip-content-id="tooltip-case_1">
Show me another tooltip
</button>
<div id="tooltip-case_1" class="hidden">Woot, you can take the content of a hidden block.</div>
.hidden {
display: none;
}
/* it will work better with this box-sizing, you may adapt it to your needs */
html { box-sizing: border-box; }
*, *:before, *:after {
box-sizing: inherit;
}
/* Tooltip hidden by default */
.simpletooltip[aria-hidden="true"],
.minimalist-simpletooltip[aria-hidden="true"],
.minimalist-left-simpletooltip[aria-hidden="true"] {
display: none;
}
/* position relative for containers */
.simpletooltip_container,
.minimalist-simpletooltip_container,
.minimalist-left-simpletooltip_container {
position: relative;
display: inline;
}
/* tooltip styles */
.simpletooltip,
.minimalist-simpletooltip,
.minimalist-left-simpletooltip {
position: absolute;
display: inline-block;
z-index: 666;
width: 10em;
border-radius: .5em;
background: rgba( 0, 0, 0, .9 );
color: #eee;
padding: .5em;
text-align: left;
line-height: 1.3;
}
.simpletooltip,
.minimalist-simpletooltip {
right: auto;
left: 100%;
margin-left: .5em;
}
.minimalist-left-simpletooltip {
right: 100%;
left: auto;
margin-right: .5em;
}
/* used pseudo-element to make arrows */
.simpletooltip::before,
.minimalist-simpletooltip::before,
.minimalist-left-simpletooltip::before {
content: '';
speak: none;
position: absolute;
z-index: 666;
width: 10px;
height: 10px;
}
.simpletooltip::before,
.minimalist-simpletooltip::before {
top: .5em;
left: -10px;
margin-left: -10px;
border: 10px solid transparent;
border-right: 10px solid rgba( 0, 0, 0, .9 );
}
.minimalist-left-simpletooltip::before {
top: .5em;
right: -10px;
margin-right: -10px;
border: 10px solid transparent;
border-left: 10px solid rgba( 0, 0, 0, .9 )
}
/* it can be easily adapted in media-queries for tablets/mobile */
/* for this example: mobile */
@media (max-width: 44.375em) {
.simpletooltip,
.minimalist-simpletooltip,
.minimalist-left-simpletooltip {
top: 100%;
left: 50%;
right: 0;
margin: 0;
margin-top: .7em;
margin-left: -5em;
}
.simpletooltip::before,
.minimalist-simpletooltip::before,
.minimalist-left-simpletooltip::before {
top: -10px;
right: auto;
left: 50%;
margin-left: -5px;
margin-top: -10px;
border: 10px solid transparent;
border-bottom: 10px solid rgba( 0, 0, 0, .9 );
}
}
Javascript Resources
https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js
https://codeamaze.com/Uploads/Resources/2018/08/w7zgj-jkE6o/js/jquery-accessible-simple-tooltip-aria.js
