Angular: 외부 라이브러리가 없는 별 등급
8971 단어 csshtmltypescriptangular
대부분의 개발자는 외부 시작 등급 라이브러리를 사용하여 많은 스타일과 매우 상호 작용적인 스타를 보여주기를 원합니다. 하지만 기본 JS 및 CSS 지원을 사용하여 이러한 스타일 별을 만들 수도 있습니다.
나는 항상 기본적으로 작성하는 것을 선호하므로 여기에 라이브러리를 사용하지 않고 별점을 구현했습니다.
개선 사항이 있으면 알려주십시오. 나는 항상 기사를 업데이트하게되어 기쁩니다.
// app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
})
export class AppComponent {
title = 'Star Rating';
arr: any[] = [];
index: number = 0;
constructor() {
this.arr = [
{ value: 1, color: 'black' },
{ value: 2, color: 'black' },
{ value: 3, color: 'black' },
{ value: 4, color: 'black' },
{ value: 5, color: 'black' }
];
}
onClickItem(index: number) {
this.index = index;
this.manipulateArr(index);
}
onMouseHover(index: number) {
this.manipulateArr(index);
}
onMouseLeave() {
this.manipulateArr(this.index);
}
manipulateArr(index) {
this.arr.forEach((item, i) => {
if (i <= index - 1) {
item.color = 'green';
} else {
item.color = 'black';
}
});
}
}
<!--app.component.html-->
<div>
<ul>
<li *ngFor="let item of arr" (click)="onClickItem(item.value)" (mouseover)="onMouseHover(item.value)"
(mouseleave)="onMouseLeave()" [style.color]="item.color">*
</li>
</ul>
</div>
<p>User Rated: {{ index }}/5</p>
// app.component.scss
ul li {
width: 60px;
cursor: pointer;
display: inline-block;
font-size: 80px;
&:hover {
color: green;
}
}
대부분 쓰여진 모든 것은 자명하다. 그러나 설명은 항상 초보자에게 도움이됩니다.
HTML에서
arr
를 사용하여 기호*
(키보드에서 사용 가능)가 있는 항목의 ul
를 사용하여 별표를 채웠습니다. 이 arr
는 5
요소로 초기화되므로 5-stars
가 표시됩니다. 초기화된 배열에 대한 ts
파일을 볼 수 있습니다.사용자가 마우스를 가져 가면 색상이
green
로 변경되고 그렇지 않으면 black
두 개의 이벤트 mouseover
및 mouseleave
를 사용하여 처리되었으며 매번 해당 메서드가 실행되었습니다.또한 사용자가 별을 클릭하면
count
가 아래에서 User Rated: 4/5
로 업데이트되고 색상은 선택될 때까지 green
입니다.당신은 나를 따라 오셔도 돼요:
여기에서 작동 방식을 확인할 수 있습니다.
angular-ivy-bat5xd.stackblitz.io
감사
Reference
이 문제에 관하여(Angular: 외부 라이브러리가 없는 별 등급), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/urstrulyvishwak/star-rating-with-no-external-libraries-in-angular-1lp5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)