简体   繁体   English

Angular 8 如何添加/删除 CSS class 延迟

[英]Angular 8 How to add/remove CSS class with a delay

I have an angular component with following snippet in template我有一个 angular 组件,模板中有以下代码段

`<div class="articleContainer">
    <div class="mrFaqArticle {{listParent}} active">
        <ul class="choice">
            <li *ngFor="let intent of intents">
                <div class="bal">
                    <a class="label"(click)="selectIntent(intent)">{{intent.title}}</a>
                </div>
            </li>
        </ul>
    </div>
</div>`

And following method in the component which does simple animation using css classes以及使用 css 类执行简单 animation 的组件中的以下方法

`animateIntentList() {
    document.querySelector(".mrFaqArticle").classList.remove("fadeIn", "fadeOut");
    document.querySelector(".mrFaqArticle.active").classList.add("fadeOut");
    document.querySelector(".mrFaqArticle.active").classList.remove('active');

    setTimeout(()=>{
        document.querySelector(`.mrFaqArticle.${this.listParent} .choice`).classList.add('stagger');
        document.querySelector(`.mrFaqArticle.${this.listParent}`).classList.add('active', 'fadeIn');
    },320);
}`

Is there a way to implement the above using directive, as accessing DOM element by query selector is considered bad practice.有没有办法实现上述 using 指令,因为通过查询选择器访问 DOM 元素被认为是不好的做法。

Did you consider to use ngClass or ngStyle?您是否考虑过使用 ngClass 或 ngStyle?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM