Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ApexChart
- angular button
- 스크롤 이벤트 감지
- TAILWIND
- 스크롤 이벤트
- summary
- angular animation
- modal
- ajax 사용 예시
- 검색
- scroll
- mysql if
- flex-1
- angular route
- Ionic modal
- prisma
- 앵귤러 애니메이션
- Angular Router
- Oracle LISTAGG 사용 예시
- route
- 셀렉트박스 커스텀
- 모달
- formgroup
- 호버
- angular modal
- 옵저버블
- egov spring ajax 사용 예시
- 앵귤러 모달
- Router
- 아이오닉 스크롤 이벤트
Archives
- Today
- Total
깜놀하는 해므찌로
Angulr Swiper 배경 이미지 슬라이드 활용 예시 / 슬라이드 터치 막기, 시간, 반복, 상세 설정 본문
반응형
SMALL
@import "swiper/css";
0. global.scss 에 로드
<!-- 배경화면 슬라이더 -->
<div class="w-full h-full absolute z-0 pointer-events-none"> <!-- 배경화면이므로 z-index 0설정 -->
<swiper-container class="swiper" style="width: 100%; height: 100%">
<swiper-slide>
<img class="w-full h-full pointer-events-none" src="assets/background/background_1.png" />
</swiper-slide>
<swiper-slide
><img class="w-full h-full pointer-events-none" src="assets/background/background_2.png"
/></swiper-slide>
<swiper-slide
><img class="w-full h-full pointer-events-none" src="assets/background/background_3.png"
/></swiper-slide>
</swiper-container>
</div>
<!-- 슬라이더 현재 진행 상황 bar -->
<div class="absolute bottom-0 w-full flex">
<div
class="bg-primary z-10 h-px"
[ngStyle]="{'width': timeLeft +'%'}"
></div>
<div class="bg-white absolute z-0 w-full h-px"></div>
</div>
1. 템플릿 : 스와이퍼 전용 태그 사용
import {
CUSTOM_ELEMENTS_SCHEMA,
ChangeDetectorRef,
Component,
HostListener,
OnInit,
ViewChild,
signal,
} from '@angular/core';
import { register } from 'swiper/element/bundle';
import Swiper from 'swiper';
register();
@Component({
selector: 'app-section1',
templateUrl: './section1.section.html',
styleUrls: ['./section1.section.scss'],
schemas: [CUSTOM_ELEMENTS_SCHEMA], //
standalone: true,
imports: [CommonModule],
})
swiper!: Swiper; // 스와이퍼 객체 선언
ngOnInit() {
// 스와이퍼 객체 값 설정
this.swiper = new Swiper('.swiper', {
autoplay: {
delay: 5000, // 5초 마다 스와이프
},
allowTouchMove: false, // 마우스 드래그 터치 막기
loop: true, // 반복 설정
on: { // 상세 옵션
autoplayTimeLeft: (swiper, timeLeft, percentage) => {
this.timeLeft = (1 - percentage) * 100;
},
},
});
}
// 스와이퍼 일시정지 및 다시재생
toggleAutoplay() {
this.swiper.autoplay.running
? this.swiper.autoplay.pause()
: this.swiper.autoplay.resume();
}
2. 스와이퍼 활용은 위한 컴포넌트 설정 예시
3. timeLeft 변수를 100분율로 만들어 현재 진행 상황을 템플릿에 전달
4. 템플릿에서 timeLeft 변수를 받아 width 값을 % 로 설정하여 현재 진행 상황을 볼 수 있습니다.
반응형
LIST
'IT' 카테고리의 다른 글
Tailwind hover 호버 시 커짐, 확대 효과 / force element state (0) | 2023.06.30 |
---|---|
Angular 현재 URL 가져오기 router.events.pipe (0) | 2023.06.29 |
SVG change color / SVG 색상 수정 예시 (0) | 2023.06.29 |
Angular font 적용하는 방법 예시 (0) | 2023.06.28 |
Tailwind media query response 예시 (0) | 2023.06.28 |