x-data-spreadsheet
Version:
a javascript xpreadsheet
32 lines (28 loc) • 839 B
JavaScript
/* global document */
import { h } from './element';
import { bind } from './event';
import { cssPrefix } from '../config';
export default function tooltip(html, target) {
if (target.classList.contains('active')) {
return;
}
const {
left, top, width, height,
} = target.getBoundingClientRect();
const el = h('div', `${cssPrefix}-tooltip`).html(html).show();
document.body.appendChild(el.el);
const elBox = el.box();
// console.log('elBox:', elBox);
el.css('left', `${left + (width / 2) - (elBox.width / 2)}px`)
.css('top', `${top + height + 2}px`);
bind(target, 'mouseleave', () => {
if (document.body.contains(el.el)) {
document.body.removeChild(el.el);
}
});
bind(target, 'click', () => {
if (document.body.contains(el.el)) {
document.body.removeChild(el.el);
}
});
}