이 기사는 CSS 속성 변경을 원활하게 애니메이션하는 방법 인 CSS 전환을 설명합니다. 기간 및 타이밍 기능을 지정하여 전환 속성을 사용하여 구현을 자세히 설명합니다. 이 기사는 애니메이션, Highlig 로의 전환을 비교합니다
CSS 전환은 지정된 기간 동안 CSS 속성의 변화를 부드럽게 애니메이션하는 방법을 제공합니다. JavaScript 애니메이션 라이브러리의 복잡성없이 미묘하고 매력적인 사용자 인터페이스 효과를 만드는 데 매우 유용합니다. 본질적으로, 그들은 당신이 서로 다른 스타일 사이를 점차적으로 전환 할 수있게하여 변화를 더 자연스럽고 갑작스럽게 느끼게합니다.
CSS 전환 구현에는 세 가지 주요 부분이 포함됩니다.
transition
속성 : 이것은 CSS 전환의 핵심입니다. 하나 이상의 속성 이름을 인수로 사용하여 어떤 CSS 속성이 전환 될지 지정합니다. 쉼표로 구분 된 여러 속성을 나열 할 수 있습니다. 예를 들면 : transition: background-color, transform 0.5s ease;
. 이 라인은 브라우저에 ease
타이밍 기능을 사용하여 반 1 초에 걸쳐 background-color
및 transform
특성을 모두 전환하도록 지시합니다.background-color
, width
, opacity
, transform
, border-radius
).linear
cubic-bezier()
ease-in-out
ease-out
제어 ease-in
ease
ease
는 기본값이며 매끄럽고 약간 가속 된 시작 및 종료를 제공합니다. linear
일정한 속도를 제공합니다. cubic-bezier()
전이 곡선에 대한 세밀한 제어를 제공합니다.예:
<code class="css">.element { background-color: red; transition: background-color 0.5s ease; } .element:hover { background-color: blue; }</code>
이 예에서, 사용자가 .element
가리키면 배경색이 0.5 초에 걸쳐 빨간색에서 파란색으로 부드럽게 전환됩니다. 전환은 background-color
속성이 변할 때만 발생합니다. 다른 속성 변경은 즉각적입니다.
예, 물론! transition
속성은 쉼표로 구분 된 속성 목록을 수용합니다. 이를 통해 해당 속성에 대한 변경시기에 따라 여러 CSS 속성을 한 번에 동기 또는 비동기 적으로 부드럽게 애니메이션 할 수 있습니다.
예:
<code class="css">.element { background-color: red; transform: scale(1); transition: background-color 0.5s ease, transform 0.3s ease-in-out; } .element:hover { background-color: blue; transform: scale(1.2); }</code>
이 예에서는 background-color
과 transform
특성 모두 동시에 전이되지만 다른 지속 시간과 타이밍 기능이 있습니다. 배경색은 ease
사용하여 0.5 초에 걸쳐 전환되는 반면, 변환은 ease-in-out
하여 0.3 초에 걸쳐 전환됩니다.
CSS 전환과 애니메이션은 모두 요소를 애니메이션하는 방법을 제공하지만 목적과 구현이 크게 다릅니다.
특징 | CSS 전환 | CSS 애니메이션 |
---|---|---|
방아쇠 | CSS 속성 변경 | @keyframes 규칙 및 관련 CSS 속성 |
지속 | 속성 당 지정, 단일 기간 | 애니메이션 당 지정, 여러 키 프레임이 가능합니다 |
복잡성 | 기본 전환을 위해 더 간단합니다 | 더 복잡한 애니메이션을 위해 더 복잡합니다 |
제어 | 애니메이션 세부 사항에 대한 제어가 적습니다 | 더 많은 제어, 다중 키 프레임 및 타이밍 기능 |
반복 | 속성 변화 당 단일 전환 | 무기한 반복 될 수 있습니다 ( animation-iteration-count ) |
방향 | 초기 상태에서 최종 상태로 일방성 | 반전 또는 다른 방향으로 재생할 수 있습니다 |
본질적으로 전환은 간단한 이벤트 중심 애니메이션 (호버 효과와 같은)에 가장 적합한 반면, 애니메이션은 복잡한 다단계 효과를위한 더 많은 힘과 제어를 제공합니다. 전이는 반응성입니다. 애니메이션은 적극적입니다.
성능을위한 CSS 전환 최적화는 브라우저의 계산 부하를 최소화해야합니다.
transform
과 같은 특성의 전환은 일반적으로 레이아웃 재 계산을 트리거하지 않기 때문에 width
, height
또는 margin
의 속성보다 성능이 뛰어납니다.cubic-bezier()
세밀한 제어를 제공하지만 ease
, linear
등과 같은 간단한 타이밍 기능보다 계산적으로 더 비쌉니다. 가장 간단한 타이밍 기능을 사용하여 원하는 효과를 달성합니다.transform
속성을 사용한 전환은 종종 하드웨어로 셀러되어있어 훨씬 더 빠릅니다.width
, height
, margin
, padding
)를 자주 트리거하는 특성에 전환을 사용하지 마십시오. 이로 인해 브라우저의 렌더링 엔진의 워크로드가 줄어 듭니다.이 지침을 따르면 웹 사이트 성능을 희생하지 않고 CSS 전환으로 시각적으로 매력적인 애니메이션을 만들 수 있습니다.
위 내용은 CSS 전환은 무엇이며 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!