2010-05-16 38 views
0

我想使用jquery来定位绝对DIV,具体取决于用户在页面上单击的位置。使用jQuery的scrollTop来绝对位置Div

目前这个工作只是伟大

$('#window').css('left', jsEvent.pageX); 
$('#window').css('top', jsEvent.pageY); 

这个位置正是我的鼠标点击了屏幕上的元素...

直到您向下滚动即是。这就是为什么我试图实现将页面顶部像素数量考虑在内的原因。我以为像这样...

$('#window').css('top', jsEvent.pageY + scrollTop()); 

会做的伎俩,不幸的是,它不工作。

任何提示?

感谢,

回答

1

这在Firefox肯定能行。因此,它应该在Chrome,Safari和Opera中运行。 IE然而,我不完全确定。试一试。

$('#window').css({ 
    left: e.clientX 
    , top: e.clientY + document.documentElement.scrollTop 
}); 

编辑:这个新版本应该在大部分工作,如果不是所有的浏览器。

var rxp = /webkit/gi; 

$('#window').css({ 
    left: e.clientX 
    , top: e.clientY + rxp.test(window.navigator.userAgent) ? document.body.scrollTop : document.documentElement.scrollTop 
}); 
+0

不幸的是,这并没有解决这个问题。与我的原始代码相比,我发现结果没有区别。任何其他想法? – Tim 2010-05-16 06:00:34

+0

我刚刚提醒了document.documentElement.scrollTop,当我向下滚动时它仍然为零。 – Tim 2010-05-16 06:06:52

+0

查看我的编辑,让我知道如果这对你有用。 – ground5hark 2010-05-16 18:17:41