>  기사  >  웹 프론트엔드  >  가능한 몇 가지 제목은 다음과 같습니다. 1. Angular 2에서 `ngIf`를 사용하여 CSS 전환을 작동시키는 방법은 무엇입니까? 2. Angular 2에서 `ngIf`가 CSS 전환을 중단하는 이유는 무엇입니까? 3. Angular 2: 원활한 전송을 위해 'ngIf'와 CSS 애니메이션 결합

가능한 몇 가지 제목은 다음과 같습니다. 1. Angular 2에서 `ngIf`를 사용하여 CSS 전환을 작동시키는 방법은 무엇입니까? 2. Angular 2에서 `ngIf`가 CSS 전환을 중단하는 이유는 무엇입니까? 3. Angular 2: 원활한 전송을 위해 'ngIf'와 CSS 애니메이션 결합

Linda Hamilton
Linda Hamilton원래의
2024-10-26 22:14:29766검색

以下是几种可能的标题:

1. How to Make CSS Transitions Work with `ngIf` in Angular 2? 
2. Why Does `ngIf` Break My CSS Transitions in Angular 2?
3. Angular 2: Combining `ngIf` and CSS Animations for Smooth Transitions
4. Troubleshooting CSS Transitions and `ngIf` in

Angular 2용 ngIf 및 CSS 전환/애니메이션

Angular 2에서 CSS를 사용하여 오른쪽에서 div를 슬라이드하는 방법은 무엇입니까?

<code class="html"><div class="note" [ngClass]="{'transition':show}" *ngIf="show">
  <p> Notes</p>
</div>
<button class="btn btn-default" (click)="toggle(show)">Toggle</button></code>
.transition{
  -webkit-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out;
  -moz-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out;
  -ms-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out ;
  -o-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out;
  transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out;
  margin-left: 1500px;
  width: 200px;
  opacity: 0;
}

.transition{
  opacity: 100;
  margin-left: 0;
}

[ngClass]를 사용하여 클래스를 전환하고 불투명도를 활용한다면 이 코드는 제대로 작동합니다. 하지만 해당 요소가 처음부터 렌더링되는 것을 원하지 않으므로 먼저 ngIf를 사용하여 요소를 "숨기지만" 전환이 작동하지 않습니다.

업데이트 4.1.0

전환 애니메이션 API를 사용하므로 더 이상 [hidden] 또는 [*ngIf Hidden]을 사용할 필요가 없습니다.

2.1.0 업데이트

angular.io에서 애니메이션 보기

<code class="typescript">import { trigger, style, animate, transition } from '@angular/animations';

@Component({
  selector: 'my-app',
  animations: [
    trigger(
      'enterAnimation', [
        transition(':enter', [
          style({transform: 'translateX(100%)', opacity: 0}),
          animate('500ms', style({transform: 'translateX(0)', opacity: 1}))
        ]),
        transition(':leave', [
          style({transform: 'translateX(0)', opacity: 1}),
          animate('500ms', style({transform: 'translateX(100%)', opacity: 0}))
        ])
      ]
    )
  ],
  template: `
    <button (click)="show = !show">toggle show ({{show}})</button>

    <div *ngIf="show" [@enterAnimation]>xxx</div>
  `
})
export class App {
  show:boolean = false;
}</code>

원래 답변

표현식이 false가 되면 *ngIf가 DOM에서 요소를 제거합니다. 존재하지 않는 요소는 전환할 수 없습니다.

은 숨겨진 속성으로 대체될 수 있습니다:

<code class="html"><div class="note" [ngClass]="{'transition':show}" [hidden]="!show"></code>

위 내용은 가능한 몇 가지 제목은 다음과 같습니다. 1. Angular 2에서 `ngIf`를 사용하여 CSS 전환을 작동시키는 방법은 무엇입니까? 2. Angular 2에서 `ngIf`가 CSS 전환을 중단하는 이유는 무엇입니까? 3. Angular 2: 원활한 전송을 위해 'ngIf'와 CSS 애니메이션 결합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.