43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
function createTooltip(frameDiv) {
|
|
|
|
var tooltip = function(frameDiv) {
|
|
|
|
var div = document.createElement('DIV');
|
|
div.className = "twipsy right";
|
|
|
|
var arrow = document.createElement('DIV');
|
|
arrow.className = "twipsy-arrow";
|
|
div.appendChild(arrow);
|
|
|
|
var title = document.createElement('DIV');
|
|
title.className = "twipsy-inner";
|
|
div.appendChild(title);
|
|
|
|
this._div = div;
|
|
this._title = title;
|
|
this.message = '';
|
|
|
|
// add to frame div and display coordinates
|
|
frameDiv.appendChild(div);
|
|
var that = this;
|
|
div.onmousemove = function(evt){
|
|
that.showAt({x : evt.clientX,y : evt.clientY},that.message);
|
|
};
|
|
};
|
|
|
|
tooltip.prototype.setVisible = function(visible) {
|
|
this._div.style.display = visible ? 'block' : 'none';
|
|
};
|
|
|
|
tooltip.prototype.showAt = function(position, message) {
|
|
if(position && message) {
|
|
this.setVisible(true);
|
|
this._title.innerHTML = message;
|
|
this._div.style.left = position.x + 10 + "px";
|
|
this._div.style.top = (position.y - this._div.clientHeight / 2) + "px";
|
|
this.message = message;
|
|
}
|
|
};
|
|
|
|
return new tooltip(frameDiv);
|
|
} |