Snow ❄️ 효과를 표시하기 위해 Angular 구성요소 빌드
11005 단어 angulartypescript
Jira 클론 스노우 테마
순전히 CSS로 작성된 Awesomecodepen을 기반으로 Jira Clone용 빠른 눈 테마를 만들었습니다.
내 결과입니다 -> https://jira.trungk18.com/project/issue/2020
눈 성분
계속해서 새
SnowComponent
를 생성하십시오. 우리는 그 구성 요소로 아무 것도 할 필요가 없습니다. 무거운 부분은 템플릿과 스타일링입니다.import { Component } from '@angular/core'
@Component({
selector: 'app-snow',
templateUrl: './snow.component.html',
styleUrls: ['./snow.component.css'],
})
export class SnowComponent {}
scss 파일을 열고 아래 코드를 붙여넣습니다. 기본적으로 각 눈송이에는 임의의 위치, 불투명도 및 지연이 있습니다. 그리고 다른
keyframe
애니메이션을 생성하여 적용했습니다.코드는 매우 짧아 보이지만 CSS 컴파일 버전은 엄청날 수 있습니다. 😂
@function random_range($min, $max) {
$rand: random();
$random_range: $min + floor($rand * (($max - $min) + 1));
@return $random_range;
}
.snow {
$total: 200;
position: absolute;
width: 20px;
height: 20px;
font-size: 20px;
border-radius: 50%;
pointer-events: none;
color: #a3b1bc;
@for $i from 1 through $total {
$random-x: random(1000000) * 0.0001vw;
$random-offset: random_range(-100000, 100000) * 0.0001vw;
$random-x-end: $random-x + $random-offset;
$random-x-end-yoyo: $random-x + ($random-offset / 2);
$random-yoyo-time: random_range(30000, 80000) / 100000;
$random-yoyo-y: $random-yoyo-time * 100vh;
$random-scale: random(10000) * 0.0001;
$fall-duration: random_range(10, 30) * 1s;
$fall-delay: random(30) * -1s;
&:nth-child(#{$i}) {
opacity: random(8000) * 0.0001;
transform: translate($random-x, -10px) scale($random-scale);
animation: fall-#{$i} $fall-duration $fall-delay linear infinite;
}
@keyframes fall-#{$i} {
#{percentage($random-yoyo-time)} {
transform: translate($random-x-end, $random-yoyo-y) scale($random-scale);
}
to {
transform: translate($random-x-end-yoyo, 100vh) scale($random-scale);
}
}
}
}
마지막으로 스노우 템플릿입니다. 그것은 단지
<div class="snow">
의 묶음일 뿐이며, div
의 정확한 수는 스타일링에서 정의한 $total
변수와 같아야 합니다.<div class="snow">❅</div>
<div class="snow">❅</div>
<div class="snow">❅</div>
<div class="snow">❅</div>
<div class="snow">❅</div>
<!-- code remove for brevity -->
이제 구성 요소에 눈 구성 요소를 적용할 수 있습니다. 그게 다야. 아래 결과를 참조하십시오.
본문에 대해 오버플로를 숨김으로 설정
위의 결과에 주목하십시오. 세로 및 가로 스크롤 막대가 모두 있습니다. 우리는 그런 일이 일어나기를 원하지 않습니다.
수정하려면 style.css에
overflow: hidden
에 대해 body
를 추가합니다.body {
overflow: hidden;
}
끝났어! 아래의 최종 소스 코드 및 출력을 참조하십시오.
소스 코드
Reference
이 문제에 관하여(Snow ❄️ 효과를 표시하기 위해 Angular 구성요소 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/trungk18/build-an-angular-component-to-display-snow-effect-78n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)