2017-12-28 47 views
1

불투명도를 변경하는 데 CSS 애니메이션 속성을 사용하면 요소의 위치가 변경됩니까? 그렇다면 DOM에서 무슨 일이 일어나고 있으며 어떻게 상쇄 될 수 있습니까?CSS 불투명도 애니메이션이 위치를 변경합니까?

컨텍스트 : 클릭했을 때 클릭 한 이미지가 페이드 인하는 CSS 애니메이션을 시작하는 함수를 호출하는 이미지 세트에 Javascript EventListener를 추가했습니다. CSS 클래스를 제거하여 불투명도 0에서 불투명도 1로 클릭 한 이미지를 반환하는 타이머도 설정됩니다. 이미지가 왼쪽에서 위쪽으로 약간 벗어나서 원래대로 배치 한 곳과 원하는 곳에서 다시 나타납니다. 있다. Chrome과 Safari에서 같은 원치 않는 결과가 발생합니다.

다음은 CSS의 :

.hiddenanimal { 
    animation: animalfade 1s; 
    animation-fill-mode: forwards; 
} 

@keyframes animalfade { 
    from { opacity: 1; 
    } to { opacity: 0; 
    } 
} 
+6

는 [mcve]가 제대로 귀하의 질문에 대답 할 수 있도록 제공하시기 바랍니다 – ochi

+0

내 자바 스크립트는 아래의 hiddenanimal의 CSS 클래스를 추가하고, 나중에 제거 : '.hiddenanimal { \t 애니메이션 : animalfade를 1s; \t 애니메이션 채우기 모드 : 전달; } @keyframes animalfade { \t {opacity : 1; \t} ~ {\t 불투명도 : 0; \t} } –

+3

질문을 편집하여 [mcve] - Welcome to StackOverflow - [둘러보기]를 취하여 [ask]에 관한 섹션을 확인하십시오. – ochi

답변

0

간단한 답변 : CSS 애니메이션은 당신이 그것을 말할 값을 변경합니다. 귀하의 예 :

유일한 변경 사항은 opacity입니다.

요소가 움직이는 경우 다른 요소가 발생하고 애니메이션 요소가 아닌 것일 수 있습니다.

DOM에서 무슨 일이 일어나는지 물어보십시오. 기술적으로 : 아무것도. CSS 값은 DOM이 아니라 시간이 지남에 따라 변합니다.

더 나은 예가 있으면 다른 사람들이 귀하의 질문에 더 잘 답변 할 수 있습니다. 나는 가정을했고, 나의 대답이 당신이 알고 싶어하는 것에도 가깝다는 것을 전혀 모른다. 일부 HTML 및 JavaScript를 포함하도록 질문을 업데이트 할 수 있다면 내 대답을 수정할 수 있습니다. (단지 추측 반대로)

+0

고마워, 내가 다른 곳에서 설명을 찾았 기 때문에 당신의 대답은 도움이됩니다. 문제는 Javascript와 관련이있는 것으로 보입니다. 나는 setAttribute 메소드를 사용하여 패딩이있는 기존 클래스를 제거한다는 것을 인식하지 않고 .hiddenanimal 클래스를 추가했습니다. setAttribute를 사용하여 타이머가 호출 될 때 원래 클래스를 다시 추가하면 이미지가 원하는 위치에 다시 나타납니다. '@keyframes animalfade'에 같은 패딩 양을 추가 할 필요가있었습니다. 그렇지 않으면 애니메이션의 시작 부분에서 약간의 위치를 ​​차지할 것이기 때문입니다. –