2012-12-21 4 views
0

div 'introduction'을 애니메이션화하여 '시작하려면 여기를 클릭하십시오'라는 링크를 클릭하면 높이와 너비가 0이됩니다. the 'Test'라는 또 다른 div는 동일한 이벤트에서 페이드 인해야합니다. 불행히도 작동하지 않습니다. 나는 YUI를 처음 사용하고 있으며 this을 출처로 사용하고 있습니다.YUI가 하나의 div에 애니메이션을 적용하고 다른 것에 변색합니다.

jsFiddle : http://jsfiddle.net/pV8eT/1/

코드 :

(function() { 
    var introductionAttributes = { 
     width: { to: 0 }, 
     height: { to: 0 } 
    }; 
    var theTestAttributes = { 
     visible: { to: true }, 
     width: { to: 500 }, 
     height: { to: 500 } 
    }; 
    var introductionAnim = new YAHOO.util.Anim('introduction', introductionAttributes); 
    var theTestAnim = new YAHOO.util.Anim('theTest', theTestAttributes); 

    YAHOO.util.Event.on('startTest', 'click', function() { 
     introductionAnim.animate(); //this works 
     theTestAnim.animate();  //this doesnt work :(
    }); 
})(); 

어떻게 "theTest"사업부에 페이드 코드를 수정합니까?

+0

유이 2 요구 사항입니다 : 여기

는 작업 예제? YUI 3로 전환 할 수 있습니까? – juandopazo

+0

예, YUI 3으로 전환 할 수 있습니다. –

+0

그렇다면 YUI를 사용해 보시기 바랍니다. 3. YUI 2는 Yahoo! 또는 지역 사회. 또한 애니메이션의 측면에서, 사용 가능한 경우 더 부드러운 애니메이션을 위해 CSS 전환을 사용하는 '전환'모듈이 제공됩니다. – juandopazo

답변

2

제 생각에 문제는 display: none이며 공개 상태입니다. 그러나 YUI 2 지식이 제한적이어서 문제를 해결하는 방법을 모르겠습니다. 내가 YUI3에서 그것을 할 거라고 방법은 다음과

는 :

YUI().use('transition', function (Y) { 
    var introduction = Y.one('#introduction'), 
     test = Y.one('#theTest'); 

    Y.one('#startTest').on('click', function (e) { 
    e.preventDefault(); 

    introduction.transition({ 
     width: 0, 
     height: 0 
    }); 
    // first set display to block, then change opacity 
    // so it fades in 
    test.setStyle('display', 'block').transition({ 
     opacity: 1 
    }); 
    }); 
}); 

는 또한 #theTest의 CSS 스타일에 opacity: 0을 추가했다. http://jsbin.com/odujer/1

+0

멋진데! :) 'theTest'div에 어떻게 페이드 효과를 추가 할 수 있습니까? –

+1

나는 CSS에서'opacity : 0'을 설정함으로써 페이드를 만들었고 IE에서 필터를 추가하고'opacity'를'1'로 전환해야합니다. 'duration : 100' (100은 초임)으로 전환 지속 시간을 변경할 수 있습니다. – juandopazo

+0

완벽하게 작동합니다! :) 정말 고맙습니다! –

관련 문제