Create a tooltip.js file.
function ToolTip(id,isAnimated,aniSpeed)
{ var isInit = -1;
var frm,divWidth,divHeight;
var xincr=10,yincr=10;
var animateToolTip =false;
var html;
function Init(id)
{
frm = document.getElementById(id);
if(frm==null) return;
if((frm.style.width=="" || frm.style.height==""))
{alert("Both width and height must be set");
return;}
divWidth = parseInt(frm.style.width);
divHeight= parseInt(frm.style.height);
if(frm.style.overflow!="hidden")frm.style.overflow="hidden";
if(frm.style.display!="none")frm.style.display="none";
if(frm.style.position!="absolute")frm.style.position="absolute";
if(isAnimated && aniSpeed>0)
{xincr = parseInt(divWidth/aniSpeed);
yincr = parseInt(divHeight/aniSpeed);
animateToolTip = true;
}
isInit++;
}
this.Show = function(e,srcpath)
{
if(isInit<0) return;
var newPosx,newPosy,height,width;
if(typeof( document.documentElement.clientWidth ) == 'number' ){
width = document.body.clientWidth;
height = document.body.clientHeight;}
else
{
width = parseInt(window.innerWidth);
height = parseInt(window.innerHeight);
}
var curPosx = (e.x)?parseInt(e.x):parseInt(e.clientX);
var curPosy = (e.y)?parseInt(e.y):parseInt(e.clientY);
frm.src=srcpath;
if((curPosx+divWidth+10)< width)
newPosx= curPosx+10;
else
newPosx = curPosx-divWidth;
if((curPosy+divHeight)< height)
newPosy= curPosy;
else
newPosy = curPosy-divHeight-10;
if(window.pageYOffset)
{ newPosy= newPosy+ window.pageYOffset;
newPosx = newPosx + window.pageXOffset;}
else
{ newPosy= newPosy+ document.body.scrollTop;
newPosx = newPosx + document.body.scrollLeft;}
frm.style.display='block';
//debugger;
//alert(document.body.scrollTop);
frm.style.top= newPosy + "px";
frm.style.left= newPosx+ "px";
frm.focus();
if(animateToolTip){
frm.style.height= "0px";
frm.style.width= "0px";
ToolTip.animate(frm.id,divHeight,divWidth);}
}
this.Hide= function(e)
{frm.style.display='none';
if(!animateToolTip)return;
frm.style.height= "0px";
frm.style.width= "0px";}
ToolTip.animate = function(a,iHeight,iWidth)
{ a = document.getElementById(a);
var i = parseInt(a.style.width)+xincr ;
var j = parseInt(a.style.height)+yincr;
if(i <= iWidth)
{a.style.width = i+"px";}
else
{a.style.width = iWidth+"px";}
if(j <= iHeight)
{a.style.height = j+"px";}
else
{a.style.height = iHeight+"px";}
if(!((i > iWidth) && (j > iHeight)))
setTimeout( "ToolTip.animate('"+a.id+"',"+iHeight+","+iWidth+")",1);
}
Init(id);
}
Now add these functions to thee page where you want to call tooltip
<script language="javascript">
var t1;
var timeout;
function showDetails(e, empid) {
if (t1) t1.Show(e, "<br><br>Loading...");
document.getElementById("a1").style.display = "none";
//these lines are used when we are having multiple tootlips in page.
document.getElementById("a2").style.display = "none";
var url = 'defectstooltip.aspx?def_id=' + empid;
document.getElementById("a").src = url;
}
function hideTooltip(e) {
if (t1) t1.Hide(e);
}
</script>
add events to links onmouseover ="showDetails(e, empid);" and onmouseout="hideTooltip(e)"
Note we can also call this tooltip on click event just make small change in function
function showDetails1(e, empid) {
setTimeout(function () {
if (t2) t2.Show(e, "<br><br>Loading...");
document.getElementById("a").style.display = "none";
document.getElementById("a2").style.display = "none";
var url = 'commentbox.aspx?def_id=' + empid;
document.getElementById("a1").src = url;
}, 1000);
}
No comments :
Post a Comment