2011-10-20 38 views
0

我試圖彈出一個div,只要點擊一個帶有編號爲toolpopup的跨度(div應該出現在這些座標處),並且它對於位於頁面頂部的跨度工作正常。但是,當我向下滾動並單擊跨度創建div,但不是在所需的座標。什麼可能是錯的?我想它Firefox 7.0.1當垂直滾動條存在時使用clientY時出錯

$("#toolpopup").live("click", function(event) { 
    var X = event.clientX; 
    var Y = event.clientY; 
    $("#popup").css('position', 'absolute'); 
    $("#popup").css("top", Y); 
    $("#popup").css("left", X); 
    $("#popup").css("display","block"); 
}); 

回答

4

我不知道正確理解你的任務,但可能需要追加到XY文檔滾動偏移量,這是因爲:

MDN https://developer.mozilla.org/en/DOM/event.clientXevent.clientX

返回內的APPLICAT水平座標離子的客戶區 在事件發生

在我的代碼我得到滾動偏移量爲:

var xOffset=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft); 
var yOffset=Math.max(document.documentElement.scrollTop,document.body.scrollTop); 

然後你可以設置XY爲:

$("#toolpopup").live("click", function(ev) { 
    var X = ev.clientX+xOffset; 
    var Y = ev.clientY+yOffset; 
+0

偉大工程!感謝:D –