Membuat Tooltip Sederhana dengan Vanilla JS dan jQuery
Table of Contents
Apa itu Tooltip?
Tooltip adalah pesan teks singkat yang muncul sementara (pop-up) saat pengguna mengarahkan kursor (hover), mengetuk, atau memfokuskan pada elemen tertentu di antarmuka pengguna (UI) aplikasi atau situs web, memberikan informasi tambahan atau konteks tentang fungsi elemen tersebut tanpa mengganggu tampilan utama.
Membuat Tooltip Sederhana
CSS
.getTooltip {
display:none;
position:absolute;
border:1px solid #333;
background-color:#161616;
border-radius:5px;
padding:10px;
color:#fff;
font-size:12px Arial;
}
HTML
Tambahkan class tooltip pada kode HTML, seperti contoh di bawah:
<a class="tooltip" href="http://blog.kangis.my.id" title="Blogger Tutorial">Blog Kang Ismet</a>
<p class="tooltip" title="Ini adalah contoh tooltip pada tag p">Contoh tooltip pada tag p</p>
<img class="tooltip" title="Justin Hall" src="https://kangismet.github.io/blog/img/justin-hall.jpg"/>
Versi Vanilla JS (JavaScript Murni)
document.addEventListener('DOMContentLoaded', function () {
const tooltips = document.querySelectorAll('.tooltip');
tooltips.forEach(function (el) {
let tooltipEl;
let tipText = '';
el.addEventListener('mouseenter', function () {
tipText = el.getAttribute('title');
el.removeAttribute('title');
tooltipEl = document.createElement('p');
tooltipEl.className = 'getTooltip';
tooltipEl.textContent = tipText;
tooltipEl.style.position = 'absolute';
tooltipEl.style.display = 'none';
document.body.appendChild(tooltipEl);
// efek fade in sederhana
tooltipEl.style.display = 'block';
tooltipEl.style.opacity = 0;
let opacity = 0;
const fadeIn = setInterval(() => {
opacity += 0.1;
tooltipEl.style.opacity = opacity;
if (opacity >= 1) clearInterval(fadeIn);
}, 30);
});
el.addEventListener('mouseleave', function () {
el.setAttribute('title', tipText);
if (tooltipEl) {
tooltipEl.remove();
}
});
el.addEventListener('mousemove', function (e) {
if (tooltipEl) {
tooltipEl.style.left = (e.pageX + 20) + 'px';
tooltipEl.style.top = (e.pageY + 10) + 'px';
}
});
});
});
Versi jQuery
Untuk menggunakan Versi jQuery, template harus sudah menggunakan Framework jQuery.
Harap diingat, penggunaan framework jQuery cukup 1 saja dalam 1 template, apabila ada lebih dari satu, maka script tidak akan bekerja.
$(document).ready(function() {
// Tooltip only Text
$('.tooltip').hover(function(){
// Hover over code
var title = $(this).attr('title');
$(this).data('tipText', title).removeAttr('title');
$('<p class="getTooltip"></p>')
.text(title)
.appendTo('body')
.fadeIn('slow');
},
function() {
// Hover out code
$(this).attr('title', $(this).data('tipText'));
$('.getTooltip').remove();
}).mousemove(function(e) {
var mousex = e.pageX + 20; //Get X coordinates
var mousey = e.pageY + 10; //Get Y coordinates
$('.getTooltip')
.css({ top: mousey, left: mousex })
});
});
Semoga bermanfaat...
Posting Komentar
image quote pre code