IE中的OffsetLeft和OffsetTop问题

Abh*_*nyu 6 javascript internet-explorer dom

在尝试创建一个工具提示时面对IE中的offsetLeft和offsetTop问题,每次我们点击日历上的不同事件时都会创建这些问题.以下是适用于Firefox但对IE创建问题的代码.可以告诉我这个解决方案..

var ttip = __createElement("div","ttipbox","ttipbox"); //creating div
target = document.getElementById("sDiv"+ndiv); //taking the object of event on click of it tooltip has to display.

var x = target.offsetLeft ;
var y = target.offsetTop - (currObj.childNodes[2].childNodes[0].childNodes[1].scrollTop + ttip.offsetHeight); 
ttip.style.top= y+15;
ttip.style.left= x - 80;
ttip.style.zIndex= "2000";
Run Code Online (Sandbox Code Playgroud)

提前致谢

TOU*_*del 5

在 IE 中应该有帮助:

var obj = target.getBoundingClientRect();
var left = obj.left;
var top = obj.top;
Run Code Online (Sandbox Code Playgroud)


scu*_*ffe 0

一些注意事项:

1.) 您有 DOCTYPE 设置吗?如果不是,您将处于 Quirks 模式,这会改变 IE 呈现事物的方式。添加 DOCTYPE 将强制 IE 以“更多”标准的方式呈现。

2.) 请尝试添加“px”;设置顶部/左侧时的后缀。有一些已知问题(我相信 Firefox)在某些情况下不指定单位会导致奇怪的行为。

3.) 即使使用alert() 也可以验证IE 中的x 和y 值是否符合您的预期。

var x = ...;
var y = ...;
alert('x:' + x + ', y:' + y);
Run Code Online (Sandbox Code Playgroud)

有了上述 3 项的一些答案,我们应该能够提供更多信息/解决问题。