javascript - Angular 2 : Setting and maintaining a CSS class when clicking on an element

标签 javascript html css angular

我目前正在开发 Angular 2 网络应用程序。在 View 中,事件元素在单击时应该获得一个额外的 CSS 类。单击的元素需要获得一个额外的 CSS 类。添加包含自己的 CSS 类的 CSS 属性“:active”不起作用,因为当用户将手指从鼠标按钮上移开时,该类将被删除。 CSS 属性“:focus”根本不起作用。我尝试使用 Angular2 指令 Ng-click、ng-switch、ng-if 和 ng-class。 到目前为止的代码 -

模板:

<footer>
<div class="thumbnail-slider">
    <div class="thumbnail-img-container">
        <img class="thumbnail-slider-img" (click)="getActualImage(url)" 
            *ngFor="let url of urls" [src]="url"/>
    </div>
</div>
</footer>

组件:

    import { Component, NgModule, Input, Output, ViewChild, EventEmitter, ElementRef, OnInit, AfterViewInit, OnDestroy } from '@angular/core';
    import { BrowserModule, DomSanitizer, SafeUrl } from '@angular/platform-browser';
    import { Http, Response, ResponseContentType } from '@angular/http';

 ReqConstImages } from '../../services';
    import { Subscription } from 'rxjs/Subscription';
    import { Subject } from 'rxjs/Subject';
    import { ObservableUtility } from '../../helper/index';
    import { trigger, state, style, transition, animate } from '@angular/animations';


    let css: any = require('!raw-loader!less-loader!./thumbnail-slider.less');

    @Component({
      selector: 'thumbnail-slider',
      templateUrl: 'thumbnail-slider.html',
      styleUrls: [css],
      animations: [
      trigger('click', [
        state('inactive', style({
          border: '5px yellow solid'
        })),
        state('active',   style({
          border: '6px green solid'
        }))
      ])
    ]

    })

    export class ThumbnailSliderComponent implements OnInit, AfterViewInit, OnDestroy {


      constructor(private http: Http, private sanitizer: DomSanitizer, private observableUtility: ObservableUtility) { };




    }

这似乎没什么大不了的;但是,我还没有找到正确的解决方案。单击的元素只需要一个额外的 CSS 类。由于我是 Angular2 的新手,非常感谢任何提示或帮助!

最佳答案

尝试在组件 ts 中创建一个新变量,更改单击函数中的值,最后在类属性内部使用

喜欢: *.ts

public changedClass = "class1";

onClickedItem(){
    this.changedClass = "class2";
}

*.html(模板)

<div class="{{changedClass}}" (click)="onClickedItem()"></div>

这里有一段代码,可以在您单击元素时更改元素中的类。

关于javascript - Angular 2 : Setting and maintaining a CSS class when clicking on an element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44889674/

相关文章:

html - 如何在不使用位置 :absolute? 的情况下在 css 中实现这种样式

javascript - 基于表格内容的动态下拉菜单 - 使用 javascript 从表格中删除内容时从下拉菜单中删除选项

javascript - AngularJs Web 服务

javascript - Angular 2 数组打印在控制台上,但无法在屏幕上打印对象属性

javascript - 在包含的 Nav.php 文件中指示当前页面

jquery - 使用 'a href' 构建动态 URL

javascript - 仅在完全加载后显示背景 gif?

css - 通用与特定元素样式 - 可维护性

html - 如何通过 x 轴拉伸(stretch)表格单元格中的背景图像?

javascript - 使用 jquery 重置下拉列表中的选定内容