/* 设置对象鼠标事件时之提示信息。(此函数需要JQuery的支持,并设置消息显示DIV 为浮动定位) HF 参数: objid, 欲显示提示之元素ID desid 欲显示之提示消息DIV ID 返回: */ function Set_objMessage_OnMouse(objid, desid) { //暂存计时器对象。 var objTimeID = null; //鼠标进入时 $("#" + objid).mouseover( function(eve) { var myevent = null; var iTmp = 0; myevent = eve == null ? window.event : eve; //定位提示框部分超出页面范围 iTmp = (myevent.pageX + $("#"+desid).outerWidth()) - document.body.scrollWidth; iTmp = iTmp > 0? myevent.pageX - $("#"+desid).outerWidth(): myevent.pageX; $("#"+desid).css("top",myevent.pageY-270); $("#"+desid).css("left",iTmp-200); $("#" + desid).fadeIn("fast"); } ); //鼠标退出时 $("#" + objid).mouseout( function() { objTimeID = setTimeout("$('#" + desid + "').fadeOut('slow')",500); } ); //鼠标进入消息提示DIV时 $("#" + desid).mouseover( function() { clearTimeout(objTimeID); } ); //鼠标退出消息提示DIV时 $("#" + desid).mouseout( function() { objTimeID = setTimeout("$('#" + desid + "').fadeOut('slow')",500); } ); } function offset(el){ var bmt = Number(getObjStyle(document.body,"marginTop").replace("px","")); var bml = Number(getObjStyle(document.body,"marginLeft").replace("px","")); var bbtw = Number(getObjStyle(document.body,"borderTopWidth").replace("px","")); var bblw = Number(getObjStyle(document.body,"borderLeftWidth").replace("px","")); var pos = {top:el.offsetTop,left:el.offsetLeft}; var node = el; var tw,lw; var ua = navigator.userAgent.toLowerCase(); if(ua.indexOf('msie') != -1){ while(node.offsetParent){ if(isNaN(tw)) tw=0; pos.top += node.offsetParent.offsetTop; node = node.offsetParent; } if(isNaN(bml)) bml=0; if(isNaN(bblw)) bblw=0; if(isNaN(bbtw)) bbtw=0; pos.top += bbtw; pos.left = el.offsetLeft+bml+bblw; } else if(ua.indexOf('opera') != -1){ while(node.offsetParent){ pos.top += node.offsetParent.offsetTop; pos.left += node.offsetParent.offsetLeft; node = node.offsetParent; } } else if(ua.indexOf('chrome') != -1){ while(node.offsetParent){ tw = Number(getObjStyle(node.offsetParent,"borderTopWidth").replace("px","")); lw = Number(getObjStyle(node.offsetParent,"borderLeftWidth").replace("px","")); pos.top += node.offsetParent.offsetTop+tw; pos.left += node.offsetParent.offsetLeft+lw; node = node.offsetParent; } } else{ while(node.offsetParent){ tw = Number(getObjStyle(node.offsetParent,"borderTopWidth").replace("px","")); lw = Number(getObjStyle(node.offsetParent,"borderLeftWidth").replace("px","")); pos.top += node.offsetParent.offsetTop+tw; pos.left += node.offsetParent.offsetLeft+lw; node = node.offsetParent; } pos.top += bbtw; pos.left += bblw; } return pos; } function getObjStyle(obj,styleName){ return document.defaultView!=null?document.defaultView.getComputedStyle(obj,null)[styleName]:obj.currentStyle[styleName]; }