Javascript滚动、XHTML Doctype、IE6-IE8和
我已经在这上面工作了好几个小时了,我想不出来 我有一个设置,它将一些坐标数据拉入javascript,并在浏览器上为用户使用canvas{and excanvas for IE6 users}将其解析为交互式地图。除了一个问题外,一切都正常:当在向下滚动页面后在地图上悬停时,悬停将被关闭 代码如下:Javascript滚动、XHTML Doctype、IE6-IE8和,javascript,internet-explorer,canvas,doctype,Javascript,Internet Explorer,Canvas,Doctype,我已经在这上面工作了好几个小时了,我想不出来 我有一个设置,它将一些坐标数据拉入javascript,并在浏览器上为用户使用canvas{and excanvas for IE6 users}将其解析为交互式地图。除了一个问题外,一切都正常:当在向下滚动页面后在地图上悬停时,悬停将被关闭 代码如下: function getOffset(evt) { var obj = document.getElementById("myCanvas"); setPageTopLeft(doc
function getOffset(evt) {
var obj = document.getElementById("myCanvas");
setPageTopLeft(document.getElementById("myCanvas"));
return [(evt.clientX - obj.pageLeft), (evt.clientY - obj.pageTop)];
}
function setPageTopLeft(o) {
var top = 0, left = 0, obj = o;
alert('scrollTop w/ getElementById: ' + document.getElementById("myCanvas").scrollTop + ' scrollTop w/ .body.:' + document.body.scrollTop + ' window.pageYOffset: ' + window.pageYOffset);
top = document.getElementById("myCanvas").scrollTop;
left = document.getElementById("myCanvas").scrollLeft;
while (o.offsetParent) {
left += o.offsetLeft;
top += o.offsetTop;
o = o.offsetParent;
};
obj.pageTop = top;
obj.pageLeft = left;
}
使用doctype:
警报是我为使其工作而运行的测试。我知道firefox可以使用window.pageYOffset,但我需要一些可以使用IE6+IE7+IE8的工具。好的,我知道了。我是个白痴。使用“document.documentElement.scrollTop”的文档记录相当充分,我认为这意味着我应该用我当前使用的元素替换“documentElement”。实际上,您应该使用document.documentElement.scrollTop来获取值。我也遇到了同样的问题。这是一年后,原来的职位,所以希望这是一个有用的补遗 使用scrollTop可能有很好的文档记录,但我发现虽然IE8没有我使用的window.pageYOffset的值,但它可以在Firefox、Opera、Safari和Chrome中工作
而且“记录良好”的修复程序在Chrome或Safari中不起作用。。。此时。你是说必然结果吗?对不起,我想说的很好笑:我修改了原始代码,以便与jQuery一起使用,因为它规范化了所有这些访问器-更容易!