> 웹 프론트엔드 > CSS 튜토리얼 > CSS 전환 완료를 어떻게 감지할 수 있나요?

CSS 전환 완료를 어떻게 감지할 수 있나요?

Patricia Arquette
풀어 주다: 2024-11-26 15:51:10
원래의
394명이 탐색했습니다.

How Can I Detect the Completion of a CSS Transition?

CSS 전환에 대한 콜백

질문:

다음과 같은 경우 알림을 받을 수 있습니까? CSS 전환에는 완료되었습니까?

답변:

예, 브라우저에서 지원하는 경우 전환이 끝나면 이벤트가 트리거됩니다. 그러나 특정 이벤트는 브라우저에 따라 다릅니다.

  • Webkit 브라우저(Chrome, Safari): webkitTransitionEnd
  • Firefox: Transitionend
  • IE9: msTransitionEnd
  • 오페라: oTransitionEnd

추가 고려 사항:

  • webkitTransitionEnd가 항상 실행되지 않을 수 있으며, 특히 애니메이션이 요소에 영향을 주지 않는 경우 더욱 그렇습니다.
  • 이벤트가 다음과 같이 실행되지 않는 경우 이벤트 핸들러가 호출되도록 하려면 시간 초과 대체를 권장합니다. 예상됩니다.

코드 예:

const transitionEndEventName = "XXX"; // Determine the appropriate event name
const elemToAnimate = ...; // Element to animate
let done = false;
const transitionEnded = () => {
  done = true;
  // Transition finished actions
  elemToAnimate.removeEventListener(transitionEndEventName, transitionEnded, false);
};
elemToAnimate.addEventListener(transitionEndEventName, transitionEnded, false);

// Trigger animation

setTimeout(() => {
  if (!done) {
    console.log("Timeout required to call transition ended.");
    transitionEnded();
  }
}, XXX); // Replace XXX with animation duration plus a grace period
로그인 후 복사

참고:

  • 전환 이벤트 종료 이름은 "How do I Normalize CSS3 Transition function across 브라우저?"
  • 이 문제는 "CSS3 전환 이벤트"와도 관련이 있습니다.

위 내용은 CSS 전환 완료를 어떻게 감지할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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