JS에서 Element 객체의 animate() 메서드로 opacity 변화를 준 요소는 이상하게도 다른 형제 요소들 보다 뒤로(?) 간다. animate()를 적용한 요소의 자식 요소에 높은 z-index를 주고 레이어로 띄웠는데 부모 요소의 형제 요소들 뒤로 숨겨진다. 파이어폭스, 크롬, 사파리 모두 같은 증상.
element.animate(
[{opacity: 0}, {opacity: 1}],
{
duration: 200,
fill: 'forwards',
easing: 'ease-in-out'
}
);
하지만 직접 style 프로퍼티를 수정하는 구식 방법에서는 문제가 없다.
element.style.opacity = '0';
element.style.transition = 'opacity .2s ease-in-out';
requestAnimationFrame(() => {
element.style.opacity = '1';
});
모든 브라우저가 같은 증상을 보이니 이게 표준 동작인 걸까?