我试图用Angular 4创建一个图库.这背后的逻辑是为所选图像添加一个层叠样式表(CSS)类,它将在所选(单击)图像上显示红色边框.这是图库的CSS样式表.
我想在我点击的图像上显示一个红色选区.this-is-a-class应添加到所选图像.
#container{
border:1px solid red;
height:auto;
}
ul li{
margin-right:20px;
margin-left:0;
list-style-type:none;
display:inline;
}
ul li img{
width: 200px;
height:200px;
border:1px solid grey;
}
#select{
border:2px solid violet;
}
.this-is-a-class{
border: 10px solid red !important;
}
Run Code Online (Sandbox Code Playgroud)
以下是模板代码
<div id="container">
<ul>
<li><img class="this-is-a-class" id="1" src="../../assets/images/1.jpg" (click)="addClass(id=1)"/></li>
<li><img id="select" src="../../assets/images/2.png" (click)="addClass(id=2)"/></li>
<li><img id="3" src="../../assets/images/3.jpg" (click)="addClass(id=3)"/></li>
<li><img id="4" src="../../assets/images/4.png" (click)="addClass(id=4)"/></li>
<li><img id="5" src="../../assets/images/5.jpg" (click)="addClass(id=5)"/></li>
</ul>
</div>
<div>
<h1>You Clicked on: {{id}}</h1>
</div>
Run Code Online (Sandbox Code Playgroud)
组件代码如下
import { Component, OnInit } from '@angular/core';
import { DataService } from '../../services/data.service';
@Component({
selector: 'app-user',
templateUrl: './user.component.html',
styleUrls: ['./user.component.css']
})
export class UserComponent implements OnInit {
id: number;
constructor() {
console.log("Constructor working..")
}
ngOnInit() {
console.log('ngOnInit works..');
}
//function to add the class to selected image to show the border.
addClass(id) {
this.id = id;
//id = this.id? 'selectedImg' : 'null';
}
}
Run Code Online (Sandbox Code Playgroud)
Aru*_*esh 63
根据使用[ngClass]和有条件地应用类id.
在您的HTML文件中:
<li>
<img [ngClass]="{'this-is-a-class': id === 1 }" id="1"
src="../../assets/images/1.jpg" (click)="addClass(id=1)"/>
</li>
<li>
<img [ngClass]="{'this-is-a-class': id === 2 }" id="2"
src="../../assets/images/2.png" (click)="addClass(id=2)"/>
</li>
Run Code Online (Sandbox Code Playgroud)
在您的TypeScript文件中:
addClass(id: any) {
this.id = id;
}
Run Code Online (Sandbox Code Playgroud)
如果您只想设置一个特定的类,您可以编写一个返回布尔值的 TypeScript 函数来确定何时应附加该类。
打字稿
function hideThumbnail():boolean{
if (/* Your criteria here */)
return true;
}
Run Code Online (Sandbox Code Playgroud)
CSS :
.request-card-hidden {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
HTML :
<ion-note [class.request-card-hidden]="hideThumbnail()"></ion-note>
Run Code Online (Sandbox Code Playgroud)
这是一个显示如何在指令中使用它的插件ngClass。
我是用divs而不是imgs 演示。
模板:
<ul>
<li><div [ngClass]="{'this-is-a-class': selectedIndex == 1}" (click)="setSelected(1)"> </div></li>
<li><div [ngClass]="{'this-is-a-class': selectedIndex == 2}" (click)="setSelected(2)"> </div></li>
<li><div [ngClass]="{'this-is-a-class': selectedIndex == 3}" (click)="setSelected(3)"> </div></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
TS:
export class App {
selectedIndex = -1;
setSelected(id: number) {
this.selectedIndex = id;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107182 次 |
| 最近记录: |