2013-03-06 3 views
-1

애니메이션이 display:none;에서 display:block;으로가는 상대 위치 지정 div에 애니메이션을 적용해야합니다. 오른쪽 하단 모퉁이에서 왼쪽 상단 모퉁이로 시작하여 크기를 조절해야합니다. 이 일을하는 방법이 있습니까? (가급적 jQuery에서 작동하지만 좋은 것은 무엇이든)jQuery에서 코너 - 투 - 코너 디스플레이 애니메이션?

+4

내가 제대로 당신의 의도를 이해한다면, 그래이 가능할 것이다 ...이 특별한 효과를 얻기 위해 지금까지 시도한 것은 무엇입니까? – sg3s

+0

요소의 너비 및 높이를 애니메이션으로 시도했지만 애니메이션의 오른쪽 아래가 아닌 왼쪽 상단에서 애니메이션이 시작됩니다. slideLeft 및 slideUp 함수의 varius 변형을 가지고 있으며, 여러 div를 사용하고 동시에 각 애니메이션을 애니메이션화하지만, 원하는대로 작동하지 않습니다. – user2140478

답변

0
+0

그 링크는 내가 찾고있는 것이 아닙니다. 내가 설명했던 방식으로 요소를 애니메이트하는 것을 허용하지 않을 것입니다. – user2140478

+0

해답을 '추측'하지 마십시오. 해명을 얻는 방법이 아닙니다. w3schools는 또한 jsfiddle을 사용하여 직접 데모를 빌드하기 위해 링크하는 끔찍한 소스입니다. – sg3s

1

http://jqueryui.com/resizable/

나는 당신이 페이드 인 또는 요소의 크기를 변경할지 모르겠습니다. 숨길 필요가있는 것처럼 들리 네요.

HTML 레이아웃은 모두 상단과 왼쪽에서 이루어 지므로 오른쪽 아래에서 왼쪽 상단으로 애니메이션을 적용하는 것이 가장 어렵다고 말하는 것은 까다 롭습니다. 조심스럽게 고정 된 위치 또는 절대, you can get an element to show from the bottom up.slideUpslideDown을 결합하여

하지만 일부 very advanced jQuery with bleeding edge includes.

그래서 나는이 솔루션을 제공합니다 사용하지 않고 오른쪽에서 왼쪽으로 밀어 수있는 방법을 못 들었 : 사업부 있기 때문에 당신이하려고하는 상대적 위치를 표시하는 데는 일종의 래퍼가 있거나 쉽게 배치 할 수 있습니다.

래퍼를 사용하면 overflow 규칙을 숨기고 그 범위의 '숨기기'div를 배치 할 수 있습니다.

HTML :

<div class='wrapper'> 
    <div class='growIt'>Text for div</div> 
</div> 
<input type='button' id='showHide' value='Show/Hide'/> 

CSS :

Now with a simple jQuery animate 랩퍼 여기

의 경계 내부를 다시 배치하여 '쇼'를 가져올 수있는 것은 한 예이다

.wrapper{ 
    background:blue; 
    position:relative; 
    width:200px; 
    height:200px; 
    overflow:hidden; 
} 
.growIt{ 
    background: red; 
    position:relative; 
    width:200px; 
    height:200px; 
    top:200px; 
    left:200px; 
    display:block; 
} 

jQuery :

$(function(){ 
    var hiding = true; 
    $('#showHide').click(function(){ 
     if(hiding == true){ 
      hiding = false; 
      $('.growIt').animate({top:'0px',left:'0px'},2000);  
     }else{ 
      hiding = true; 
      $('.growIt').animate({top:'200px',left:'200px'},2000);  
     } 
    }); 
}); 

버튼을 클릭하면 빨간색 div가 숨겨 지거나 표시됩니다.

당신이보기에 관해서는 방법 중 다른 형태의 요소를 밀어해야하기 때문에 display:none에서 display:block에 애니메이션의 귀하의 요구 사항 인 경우, I would suggest adding another wrapper with position:relative and then making the wrapper slide 'down' from the bottom.

+0

당신의 솔루션은 건전하지만, 자바 스크립트에서 전역 범위를 오염시키지 않도록 onload 함수 내부에 '숨어있는'var을 옮겼습니다. – sg3s

+0

나는 거짓말하지 않을 것이고, 나는 아직도 내가 '폐쇄'를 할 때를 아는 데 어려움을 겪고있다. 편집 해 주셔서 감사합니다. –

+1

이것은 기술적으로 클로저가 아닙니다 [이 질문 읽기] (http://stackoverflow.com/questions/111102/how-do-javascript-closures-work). 그러나 var 문을 사용하여 변수를 정의한 경우 변수가 고유 할 새 고유 범위를 정의하고 있습니다. 변수는이 범위와 모든 하위 범위 (이 경우 애니메이션에 전달하는 클릭 기능)에서 사용할 수 있습니다. [범위를 설명하는 좋은 질문입니다] (http://stackoverflow.com/questions/500431/javascript-variable-scope). 내 포인트는 – sg3s