2013-03-28 1 views
2

스타일의 CSS 속성을 변경하는 jQuery로 CSS3 전환을 추가하려고합니다. 의jQuery를 사용하여 CSS3 전환을 일시 중지 한 후에 만 ​​작동합니까?

그것은 매우 어리석은 일이 될 수도 있지만 내가 CSS 속성의 갱신 전에 alert을한다면 내가 왜 몰라 (... 나는 transform3d와 함께 할 싶지만 속성은 동적) CSS3 전환이 잘 작동합니다. 그렇지 않은 경우 그렇지 않습니다. http://jsfiddle.net/7WPT8/1/

는 CSS를 업데이트하는 데 사용되는 코드는 다음과 같습니다 :

//topPosition is the dynamic value 
$(this).css('top', topPosition+'px'); 

그것은 단지 당신이 무슨 뜻인지보고 싶다면 여기의 예와 jsfiddle을

, 그냥 alert 코멘트 이전에 alert을 사용하면 작동합니다.

+0

와우는 매우 이상합니다. 나는 이전에 뭔가하는 것을 본 적이 없습니다. O – Doorknob

답변

2

, 그것은 타이밍 문제입니다. (나는 VAR _this을 사용하고

http://jsfiddle.net/7WPT8/5/ 확인 - 그것은 또한 CSS 속성의 변화를 실행하는 데 최소한의 제한 시간을 사용하여 방지 할 수 있습니다 (시작부터 문서의 flashmessage을 가진 경우에하는 것은 선택 사항이 아닙니다) jQuery 엘리먼트를 클로저를 통해 익명의 함수에 전달하려면 여기를 클릭하십시오. 그렇지 않으면 시간 초과를 통해 분리 된 실행으로 인해 $(this)이 무엇인지 알 수 없습니다.)

+0

좋은 소식입니다! 1 밀리 초가 맞습니까? – Alvaro

+0

지연 btw가 필요한 이유는 무엇입니까? – Alvaro

+0

하나 이상의 메시지를 표시하려고 할 때 예상대로 작동하지 않는 것으로 나타났습니다. 여기에 무슨 뜻입니까 : http://jsfiddle.net/7WPT8/7/. 이제'setTimeout' 라인의 주석 처리를 제거해보십시오. 그것을위한 어떤 해결책? 감사! – Alvaro

2

요소를 생성하고 나중에 요소를 사용하는 곳에서 showFlash() 함수를 직접 호출합니다. 시퀀스에 시간 문제가있을 수 있으며 alert()은 현재 시퀀스를 깨뜨리고 작동합니다.

간단한 방법으로이를 방지하려면 콘텐츠에 직접 div을 추가하십시오. 스벤이 옳다

http://jsfiddle.net/7WPT8/4/

+0

나는 그렇게하지 않는 편이 낫습니다. 이 메시지는 동적으로 생성되며 시작 이후 div는 코드에서 일부 변경을 초래합니다. – Alvaro

관련 문제