2011-11-13 3 views
3

SORRY - MY BAD - この機能はバグであると私に思いました。 ** *ただし、必要な場合は機能があります。ページ内の要素の実際の位置を見つけるためのクロスブラウザのjavascript関数

ありがとうございました。 !

function findPos(obj) { 
     var curleft = curtop = 0; 
     if (obj && obj.offsetParent) { 
     do { 
      curleft += obj.offsetLeft; 
      curtop += obj.offsetTop; 
     } while (obj = obj.offsetParent); 
     } 
     return [curleft,curtop]; 
    } 

見つけて、ページ内の要素の実際の位置にする:

~~

私はこの機能を得ました。

何らかの理由でIEにエラーが表示されます。どのように私はクロスブラウザで動作するようにこれを修正するのですか?

+1

:それはgetBoundingClientRectメソッドを使用しています。 – N3dst4

答えて

1

offsetをJqueryから使用できます。

+2

ちょっと、純粋なjsがそれを実行できるように、私はjQueryで作業しないことを好みます。 –

+0

このセクションは回答です。ご質問がある場合は、[質問する](http://stackoverflow.com/questions/ask)ボタンをクリックして質問してください。 –

7

この独立したコードは、フレームワークなしで最新のブラウザでオフセットを取得する必要があります。人々はあなたを助けるためにのためにあなたはエラーが何であったかを教えている場合、それははるかに容易になります

function offset(element){ 
    var body = document.body, 
     win = document.defaultView, 
     docElem = document.documentElement, 
     box = document.createElement('div'); 
    box.style.paddingLeft = box.style.width = "1px"; 
    body.appendChild(box); 
    var isBoxModel = box.offsetWidth == 2; 
    body.removeChild(box); 
    box = element.getBoundingClientRect(); 
    var clientTop = docElem.clientTop || body.clientTop || 0, 
     clientLeft = docElem.clientLeft || body.clientLeft || 0, 
     scrollTop = win.pageYOffset || isBoxModel && docElem.scrollTop || body.scrollTop, 
     scrollLeft = win.pageXOffset || isBoxModel && docElem.scrollLeft || body.scrollLeft; 
    return { 
     top : box.top + scrollTop - clientTop, 
     left: box.left + scrollLeft - clientLeft}; 
}