Element: animate()로 opacity 변경 시 깊이가 달라지는 문제

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';
});

모든 브라우저가 같은 증상을 보이니 이게 표준 동작인 걸까?

이 글은 개발 카테고리에 분류되었고 , 태그가 있으며 님에 의해 에 작성되었습니다.