我一直在試圖找到很好的函數來幫助我將元素放在頁面中,考慮其他元素的位置。我沒有使用jQuery。未找到頁面中元素的正確位置。函數不考慮填充
所以我發現很多消息來源告訴我,我應該瀏覽目標元素的offsetParent,得到他們的offsetTops和offsetLefts。它幾乎工作,但我做了一些測試,並意識到它不考慮一些父母的填充。我改變了使用CSS的填充,它仍然給出相同的數字。而當我把在頁面中的元素,它卡住接近或超過母公司的利潤
我使用這個函數(這是很相似的,我發現在網絡上的大多數功能)
function getOffset(el){
if(isString(el)) el = document.getElementById(el);
var x = el.offsetLeft;
var y = el.offsetTop;
while(el = el.offsetParent){
x += el.offsetLeft;
y += el.offsetTop;
}
return { left: x, top: y };
}
你知道如何解決它,朋友嗎?如果我張貼一些照片會有幫助嗎?我已經試圖改變CSS,我深信問題是一個元素的填充。
@EDIT
我使用的是Firefox 14.0.1
在原始頁面還有很多其他的因素,這就是爲什麼我得到的數量是不同的。但在jsfiddle中的錯誤是一樣的。它說1左(這可能是元素'內容'的邊框的寬度)。它沒有考慮元素'registerArea'中左側填充的15個像素,也沒有考慮邊界。
jsFiddle總是有幫助 –
請注意,jQuery對它們的文檔具有相同的限制:「注意:jQuery不支持獲取隱藏元素的偏移座標,也不支持在body元素上設置邊框,邊距或填充。 –
啊,這是不是一件不可能做的事情,史蒂夫?你有沒有見過同樣的問題? –