在IE上跟踪鼠标

时间:2010-03-19 12:17:46

标签: jquery mouseevent

请考虑以下代码段:

$(document).bind('mousemove', function(e)
                 {
                    $('#someDiv').css({left: e.pageX+'px', top: e.pageY+'px'});
                 });

当“position”的css值设置为绝对时,这应该使#someDiv跟随鼠标(工具提示)。

按预期工作,除非您在IE7中放大IN或OUT(不要尝试其他版本的IE)。然后e.pageX完全关闭。放大的越多(使用鼠标滚轮+ CTRL),定位越多。

我试图打破jQuery的UI演示(滑块),看起来甚至连jQuery的人都没想到这一点。是否有任何天才知道如何解决这个令人讨厌的事情?

提前致谢!

2 个答案:

答案 0 :(得分:1)

尝试以下HTML:

<div id="one" style="top:2px;left:10%;width:10px;height:10px;background:blue; position:absolute;"> </div>
<div id="two" style="top:2px;width:10px;height:10px;background:red;position:absolute;"> </div>

<div id="log" style="margin-top:25px;"> </div>

使用以下脚本:

document.getElementById("two").style.left = document.getElementById("one").offsetLeft + "px";
var zoom = 0;

setInterval(function() {
  var newZoom = document.getElementById("two").offsetLeft / document.getElementById("one").offsetLeft;



if (newZoom == zoom) return;
  zoom = newZoom;



document.getElementById("log").innerHTML += zoom + "<br>";
}, 200);

它提供了一种在浏览器中计算缩放级别比例的方法。

我认为如果您在计算中引入此参数,它将对您有所帮助

抱歉,我发布了一个新答案,但评论框没有显示代码段按钮

答案 1 :(得分:0)

如果您在每个时刻获得浏览器中参考元素的客户端宽度并将其除以该元素的原始大小,您可以获得缩放增长或缩小的比例。因此,如果您将该参数添加到计算中总是相乘,则您的值应相应更新,以便将页面比例合并到您的鼠标移动中。

我这样说没有实际重写代码,但这对你自己来说似乎并不难。