this question과 같이 새로 추가 된 요소의 즉시 CSS 전환은 무시됩니다. 전환의 끝 상태가 즉시 렌더링됩니다.추가 된 요소에서 CSS 전환 트리거
.box {
opacity: 0;
transition: all 2s;
background-color: red;
height: 100px;
width: 100px;
}
.box.in { opacity: 1; }
이 소자의 투명도가 바로 설정된다 (1) : I는 트리거의 여러 가지를 본
// Does not animate
var $a = $('<div>')
.addClass('box a')
.appendTo('#wrapper');
$a.addClass('in');
이 CSS (접두사 생략) 주어진 예
, 전환 예상 동작을 얻으려면 :
// Does animate
var $b = $('<div>')
.addClass('box b')
.appendTo('#wrapper');
setTimeout(function() {
$('.b').addClass('in');
},0);
// Does animate
var $c = $('<div>')
.addClass('box c')
.appendTo('#wrapper');
$c[0]. offsetWidth = $c[0].offsetWidth
$c.addClass('in');
// Does animate
var $d = $('<div>')
.addClass('box d')
.appendTo('#wrapper');
$d.focus().addClass('in');
바닐라 JS DOM 조작 - 이것은 jQuery 특정 동작이 아닙니다.
편집 - 나는
JSFiddle 크롬 35 (바닐라 JS 예 포함) 사용하고 있습니다.
- 왜 추가 된 요소의 즉각적인 CSS 애니메이션이 무시됩니까?
- 어떻게 그리고 왜 이러한 방법이 효과가 있습니까?
- 다른 방법이 있습니까
- 어느 것이 더 선호되는 솔루션입니까?
좋은 질문, 그것은 때문에 코드를 최적화 스크립팅 엔진에 애니메이션이 임박 가능합니다. – Nit