You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.6 KiB
JavaScript

/*
设置对象鼠标事件时之提示信息此函数需要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];
}