2009-05-28 7 views
2

아래의 jQuery 예제에서 다른 div 안에 하나의 div가 있습니다. inner div를 0의 폭으로 애니메이트 할 때, outer div (절대 위치 지정을 가짐)는 그것과 함께 너비가 감소합니다.jQuery : 애니메이션 후에 div가 전체 크기로 다시 이동합니다.

이 것이 바람직합니다.

애니메이션이 끝나면 바깥 쪽 div가 원래 크기로 돌아옵니다. 예상 되나요? 어떻게 이런 일이 일어나지 않도록 할 수 있습니까?

감사합니다.

HTML :

<div class="outer"><div class="inner">innerContent</div></div> 

CSS :

div.outer { 
    position: absolute; 
    padding: 10px; 
    background: purple; 
} 

div.inner { 
    position: relative; 
    padding-left: 5px; 
    padding-right: 5px; 
    background: orange; 
    clip: auto; overflow: hidden; 
} 

0

자바 스크립트 :

$('.outer').click(function() { 
    $('.inner').animate({width: 0, paddingLeft: 0, paddingRight: 0}, 'slow'); 
}); 
+0

Firefox 및 IE에서 저에게 맞습니다. – kgiannakakis

답변

4

'outer'div의 너비와 'inner'div의 outerWidth를 뺀 다음 'inner'div의 outerWidth에서 'outer'div의 너비를 뺀 다음 'outer' 너비를 결과에 동시에 적용하면서 '내부'를 0으로 애니메이션하면 효과가 있습니다.

jquery 또는 webkit 또는 둘 모두에 대한 버그 수정 요청 여부에 대한 의견.

$('.outer').click(function() { 
    var innerWidth = $('.inner').outerWidth(); 
    var outerWidth = $('.outer').width(); 
    var theWidth = outerWidth - innerWidth; 
    $('.inner').animate({width: 0, paddingLeft: 0, paddingRight: 0}, 'slow'); 
    $('.outer').animate({width: theWidth}, 'slow'); 
}); 
+0

나는 이것을 jQuery 버그로보고 할 것이다. jQuery의 요점은 이러한 것들을 브라우저간에 표준화하는 것이다. – Nosredna

+0

덧붙여서,이 예에서는 바깥 쪽을 0으로 애니메이션 할 수 있습니다 만, 실제의 페이지에서는 안쪽 div를 따라 계속 보일 필요가있는 추가의 컨텐츠가있어, 아우터를 0으로 줄이는 것은 실제로 옵션이 아닙니다. – user113716

+0

Nosredna, 좋은 지적이야. 그것은 아마 심지어 빠른 수정으로 귀결 될 것입니다. – user113716

1

당신이 애니메이션이 완료된 후 0으로 outerbox 폭을 설정 시도?

$('.inner').animate({width: 0, paddingLeft: 0, paddingRight: 0}, 'slow', function() { 
    $('.outer').css("width", 0); 
}); 
+0

글쎄, 이런 종류의 작품. 실제로 0으로 줄기 전에 외부 div가 여전히 1 초 동안 전체 크기로 확장되는 더듬이를 만듭니다. – user113716

0

우분투 9.04에서 jQuery 1.3.2를 사용하는 Firefox 3.0.10에 대한 제게 이것은 완벽하게 작동합니다. 페이지의 다른 HTML 요소와 상호 작용할 수 있습니까?

+0

웹킷 기반 브라우저를 사용하고 있습니다. Mac OS X에서 Firefox를 사용해 보았는데 완벽하게 작동하므로 웹킷 문제 여야합니다. 게시 한 예는 매우 단순화 된 내 페이지 버전입니다. 다른 요소가 있는지 여부에 관계없이 동작이 동일합니다. – user113716

0

내 테스트에서 IE, FF 및 Opera에서 제대로 작동하지만 Chrome 및 Safari에서 언급 한 버그가 생성됩니다.

+0

예, 웹킷이 범인 인 것 같습니다. 호핑 나는 적절한 해결 방법을 찾을 수 있습니다. – user113716

관련 문제