根据类名生成事件

时间:2018-09-11 15:27:12

标签: angular events

我有一个在Angular中创建的自定义组件,如下所示:

enter image description here

当我单击一个指示器时,绿色部分会动画显示并落在该指示器上:

enter image description here

我有一个新的要求,就是可以设置渲染时最初单击的值。因此,例如,您可以在某个页面的某个点进行配置,如果以后再访问同一页面,该组件将自动反映您先前的选择。

例如,一个可能名为[indicatorSelected]="'60'"的输入将生成第二张图像。

以下是控制动画的代码:

@HostListener('click', ['$event']) public onClickIndicator(event: Event) {
    const targetNode: HTMLDivElement = event.target as HTMLDivElement;
    const classList: DOMTokenList = targetNode.classList;
    if (classList.contains('indicator')) {
        const centerX: number = targetNode.offsetLeft + targetNode.offsetWidth;
        const centerXOffset: number = 10;
        this.innerShell.nativeElement.style.width = `${centerX + centerXOffset}px`;
    }
}

这是HTML标记:

<div class="shell">
  <div *ngFor="let interval of intervals; let first = first; let last = last; let i = index;"
    class="indicator"
    (click)="onClickTime(i)"
    [ngClass]="{'first': first, 'last': last}">
    <p class="seconds">{{ interval * (i + 1) }}</p>
  </div>
  <div #innerShell class="inner-shell"></div>
</div>

我想知道是否有一种方法可以利用此现有功能来生成单击事件,然后可以将其传递给此方法。

如果我获得了想要单击的指标的类名,是否可以基于该指标模拟点击?

0 个答案:

没有答案