首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在呈现后向元素添加类

在呈现后向元素添加类
EN

Stack Overflow用户
提问于 2017-08-02 20:04:45
回答 2查看 887关注 0票数 0

我有一个组件,它有一个动态定义的svg图像,我想要动画化。

代码语言:javascript
复制
<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>

我试图添加‘动画’和'tada‘的类名,但它根本行不通。

代码语言:javascript
复制
@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路线。

代码有什么问题?

EN

回答 2

Stack Overflow用户

发布于 2017-08-02 20:10:17

要向classList添加类,需要调用classList.add('tada', 'animated')

请参阅这里的医生

票数 1
EN

Stack Overflow用户

发布于 2017-08-02 20:18:58

通过注入来自Renderer@angular/core服务,您可以将两个类添加到元素中:

代码语言:javascript
复制
...
const svgElement = this.svg.nativeElement.childNodes[1].childNodes[1];
this.renderer.setElementClass(svgElement, "animated tada", true);
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45469987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档