2012-08-14 4 views
0

은 내가절대 위치 문제

var left = $('#elementA').offset().left; 

var top = $('#elementA').offset().top; 


--------------------------- 
| -----------   |  
| |o   |   |   
| |   |   | 
| |   |   | 
| |   |   |  
| -----------   | 
|-------------------------- 

오 내 elementA 의미있는 요소 A. 위에 B의 절대 위치 설정에 요소를하려합니다.

나는 A 원소

$('elementB').css({ position:'absolute', 
      top:top, 
      left:left}) 


--------------------------- 
| -----------   | 
| |o   |   |  
| | b  |   | 
| |   |   | 
| |   |   | 
| -----------   | 
|-------------------------- 
b means my element b 

과 같은 위치 요소 b를 데려 가고 싶다는하지만 위와 같이 밝혀졌습니다.

내가이 작품을 것

$('elementB').css({ position:'absolute', 
      top:0, 
      left:0}) 

을 설정합니다. 그러나 나는 많은 다른 요소 B와 요소 A를 가지고 있고 그것들 모두에 대해 0을 사용할 수는 없습니다.

누구든지이 문제에 대해 도움을받을 수 있습니까? 고마워요!

+1

사용중인 HTML 콘텐츠를 포함시켜주십시오. A와 B 요소가 다른 요소로 싸여 있습니까? 그렇다면 절대 위치 지정은 요소를 래핑하는 요소와 관련됩니다. –

+0

몇 가지 코드를 볼 수 있습니까? 나를 위해 완벽하게 작동합니다 : http://jsfiddle.net/uqYSu/ – orhanhenrik

답변

1

에있어 설정, B가 정렬 될 필요가 모든 상황에 대한의 자식입니다 다른 요소를 기준으로 모든 요소의 위치를 ​​지정합니다. 참조 : 경우 http://docs.jquery.com/UI/Position

그것을는 다음과 같습니다

$('#elementB').position({ 
    my: 'left top', 
    at: 'left top', 
    of: '#elementA' 
}); 

이 또한 내가 예를 들어, 그것은 CSS 속성 값에 'PX'를 추가하는 것이 좋습니다 생각 :

$('...').css({ 
    left: 100 + 'px' 
}); 

당신에게 위에서 언급 한 것처럼 상대적인 요소 배치를 항상 고려해야합니다. 부모 요소가 "배치 된"경우 자식 요소는 창에 상대적이 아니라 부모를 기준으로 배치됩니다. 더 많은 융통성을 원한다면 B 요소를 A 요소에서 가져올 수 있습니다 (형제로 만드십시오).

0

함수 offset()은 윈도우에서 요소의 오프셋을 제공합니다. 필요한 것은 컨테이너 내부의 elementA의 상대적 오프셋입니다.

시도 위치() 대신 오프셋()

다른 예에 근거 : http://jsfiddle.net/dcFXj/

0

요소가 다른 요소의 하위 인 경우, 절대 위치는 창 정말로 절대 아니다 그것의 부모에 상대적인 의 절대입니다. div의 왼쪽 위 모서리가 부모의 왼쪽 위 모서리와 완벽하게 일치하도록하려면 topleft이 부모로부터 정확히 0 픽셀 떨어져 있어야합니다. 그것은 그것을 멀리 이동할 수있는 다른 모든 항목을 무시하기 때문에 그것은 절대적입니다.

Here's a demonstration of that in action

B 그냥 항상이 왼쪽 상단 당신은 jQuery를 UI 위치 플러그인을 사용할 수 있습니다 0