我有一個組件,其中包含一個動態定義的svg圖像,我嘗試進行動畫處理。在渲染後向元素添加類
<div class="special-container">
<div class="alert-panel">
<ion-icon class="close" style="float:right;cursor:pointer" color="primary" name="close" (click)="dismiss()"></ion-icon>
<div class="image-container" #svg_image>
<div class="image" [style.background]="urgent ? '#f53d3d' : 'dodgerblue'" [innerHtml]="image | keepHtml">
<!-- SVG loads here -->
</div>
</div>
<ion-grid>
<ion-row>
<ion-col col-8 push-2><h3 class="title no-margin">{{ title }}</h3></ion-col>
<ion-col col-8 push-2> <p class="subtitle subtle no-margin">{{ subtitle }}</p></ion-col>
</ion-row>
</ion-grid>
<div padding *ngIf="type == 'confirm'">
<ion-grid>
<ion-row>
<ion-col><button (click)="dismiss('no')" ion-button full round color="danger">No</button></ion-col>
<ion-col><button (click)="dismiss('yes')" ion-button full round color="primary">Yes</button></ion-col>
</ion-row>
</ion-grid>
</div>
</div>
</div>
我試圖添加類名稱'動畫'和'田田',但它根本行不通。
@ViewChild('svg_image') svg;
// Correctly logs the svg element
console.log(this.svg.nativeElement.childNodes[1].childNodes[1])
setTimeout(() => {
this.svg.nativeElement.childNodes[1].childNodes[1].classList += ' animated'
this.svg.nativeElement.childNodes[1].childNodes[1].classList += ` tada`
}, 1000)
,因爲它不是在渲染定義,將拋出一個錯誤我不能放置#svg_image
標籤上的實際目標。所以我去了childNodes
路線。
代碼有什麼問題?
請使用'this.svg.nativeElement.querySelector(...)'而不是所有對'childNodes []'的引用'如果一個節點被添加到這些子節點之前,那麼你的數組索引將關閉,並且您的代碼將會中斷。 –