> 웹 프론트엔드 > CSS 튜토리얼 > CSS 전환이 JavaScript 슬라이드쇼에서 작동하지 않는 이유는 무엇입니까?

CSS 전환이 JavaScript 슬라이드쇼에서 작동하지 않는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-29 09:06:03
원래의
717명이 탐색했습니다.

Why Are My CSS Transitions Not Working With My JavaScript Slideshow?

JavaScript 응용 프로그램에서 CSS 전환 실패

CSS3 전환으로 슬라이드쇼를 향상시키려는 시도에서 사용자는 다음과 같은 혼란스러운 문제에 직면했습니다. JavaScript를 통해 올바른 스타일이 적용되었음에도 불구하고 작동을 거부했습니다.

JavaScript는 슬라이드쇼 슬라이드를 검색하고 사전 정의된 CSS 클래스를 할당하여 애니메이션을 제어합니다. 그러나 지정된 전환이 활성화되지 않습니다. 개발자 도구 콘솔을 사용하여 스타일과 전환을 수동으로 적용할 때는 이러한 현상이 관찰되지 않습니다.

분석을 통해 전환이 발생하려면 세 가지 조건이 충족되어야 하는 것으로 확인되었습니다.

  1. 요소의 초기 속성은 명시적으로 정의되어야 합니다(예: 불투명도: 0.
  2. 전환은 요소에 할당되어야 합니다(예: 전환: 불투명도 2s).
  3. 새 속성 값은 다음과 같아야 합니다. 예를 들어 opacity: 1.

문제가 있는 JavaScript 구현에서는 조건 1과 2가 동적으로 할당됩니다. 결과적으로 브라우저가 변경 사항을 처리하고 등록하는 데 시간 지연이 없습니다.

이 문제를 해결하려면 조건 3을 적용하기 전에 지연을 삽입하는 것이 좋습니다. 이 지연을 통해 브라우저는 이전 변경 사항을 통해 해당 값이 변경될 때 전환 속성이 ​​올바르게 인식되도록 합니다.

<code class="javascript">window.setTimeout(function() {
  slides[targetIndex].className += " target-fadein";
}, 100); </code>
로그인 후 복사

또는 조건 3을 HTML 내에서 직접 적용하여 페이지 로드 중에 전환 속성이 ​​정의되도록 할 수 있습니다. JavaScript 지연의 필요성:

<code class="html"><div class="target-fadein-begin" ...></div></code>
로그인 후 복사

이러한 조건이 충족되면 CSS3 전환에 의해 트리거된 애니메이션이 예상대로 작동합니다.

위 내용은 CSS 전환이 JavaScript 슬라이드쇼에서 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿