기본 HTML과 CSS 팁을 사용하여 코드를 Ionic 2와 쉽게 호환 할 수있게되었습니다. 사실 적은 수의 코드 라인으로 프로세스가 훨씬 간단 해졌습니다.
프로젝트 시작하기
콘솔을 열고 빠른 프로젝트를 시작하십시오.
> ionic start ionic-splasher tabs --v2
탭 시작 템플릿을 사용할 필요가 없으며 공백이나 다른 것을 사용할 수 있습니다. 나는 페이지가 미리 채워져있어 특정 페이지를 방문 할 때마다 스플래시 페이지가로드되지 않는다는 것을 입증 할 수 있기 때문에 사용하기로했다. 일단 앱이로드되면로드하기를 원합니다. 권리!
설치가 완료되면 다음을 수행합니다.
> cd ionic-splasher
> ionic serve -l
ionic serve -l 을 실행하면 브라우저에 프로젝트가로드됩니다. 로드되는 기본 페이지가 홈 페이지인지 확인하십시오.
스플래쉬 HTML
앱이 시작될 때로드되는 기본 페이지로 이동합니다. 여기서는 /src/pages/home.html에 있습니다.
home.html 의 상단에서 <ion-header> 바로 위에 :
<div id="custom-overlay" [style.display]="splash ? 'flex': 'none'">
<div class="flb">
<div class="Aligner-item Aligner-item--top"></div>
<img src="assets/logo.svg">
<div class="Aligner-item Aligner-item--bottom"></div>
</div>
</div>
# 맞춤 오버레이 사업부는 전체 화면을 커버합니다. 우리가 사용하고있는 스타일 바인딩 CSS의의에 설정을 디스플레이 속성입니다. 는 IF 시작 속성이 true, 그것은 그것을 설정합니다 플렉스 ,하지 않을 경우, 그것은으로 설정됩니다 없음 .
.flb의 그것의 내부 클래스와 모든 선택 사항입니다.
스플래시 CSS
내 home.scss의 파일에 붙여 넣습니다 :
#custom-overlay {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 100000;
width:100%;
background-color: #002a3e;
}
.flb {
background-color: #3ebffb;
height:100%;
width:100%;
animation: pulse 1s linear forwards;
display: flex;
align-items: center;
justify-content: center;
}
.Aligner-item {
max-width: 50%;
}
.Aligner-item--top {
align-self: flex-start;
}
.Aligner-item--bottom {
align-self: flex-end;
}
#custom-overlay img {
display: block;
margin: 0 auto;
width: 50%;
height: auto;
animation: animation 3100ms linear infinite both;
animation-delay: 1s;
}
여기서 핵심 요소는 # custom-overlay 입니다. 연관된 CSS 규칙 세트는 현재 페이지를 덮어 씁니다. 그 안의 다른 것들은 당신과 스플래시 페이지의 필요에 달려 있습니다.
나머지 CSS 룰 세트는 SVG 로고를 가운데 정렬 및 수직 정렬합니다.
선택적 애니메이션
.flb 클래스 에서 페이드와 같이 CSS 애니메이션을 적용하려면 방금 붙여 넣은 CSS의 아래쪽에 추가하십시오.
@keyframes pulse {
0% {
opacity:0;
}
100% {
opacity:1;
}
}
데모를보고 로고에 적용된 복잡한 애니메이션 시퀀스를 발견했다면 많은 코드가 있습니다! 다행히도 저는 이것을 직접 코딩하지 않았습니다. 대신 Bounce.js를 방문 했습니다 . 이렇게하면 왼쪽 드롭 다운에서 미리 설정된 애니메이션을 선택하고 미리보고 CSS 내보내기를 클릭 할 수 있습니다.
그러면 주어진 애니메이션 시퀀스를 가능하게 해주는 @keyframes 애니메이션을 복사 할 수있는 큰 텍스트 영역이 열립니다.
원한다면 그렇게 할 수 있습니다. 지금은이 튜토리얼에서 많은 양의 CSS를 붙여 넣지는 않겠다.
모든 것을 작동 시키십시오.
다음 코드는 탭 기반의 Ionic 2 레이아웃을 사용하는 경우 약간 다를 수 있습니다. 탭 레이아웃을 사용하는지 여부에 따라 필요로하거나 필요하지 않은 것에 대한 메모를 작성합니다.
home.ts 파일을 열고 탭을 사용하지 않는 경우 다음을 붙여 넣으십시오 .
export class HomePage {
splash = true;
secondPage = SecondPagePage;
constructor(public navCtrl: NavController) {
}
ionViewDidLoad() {
setTimeout(() => this.splash = false, 4000);
}
}
당신이하는 경우 탭을 사용하여 이 튜토리얼, 개방의 경우와 같이 home.ts 다음에 붙여 넣기를 :
export class HomePage {
tabBarElement: any;
splash = true;
constructor(public navCtrl: NavController) {
this.tabBarElement = document.querySelector('.tabbar');
}
ionViewDidLoad() {
this.tabBarElement.style.display = 'none';
setTimeout(() => {
this.splash = false;
this.tabBarElement.style.display = 'flex';
}, 4000);
}
}
스플래시 페이지가 맨 아래의 탭 표시 줄을 덮지 않기 때문에 탭을 사용하는 경우 약간의 추가 작업이 필요합니다. 위 코드는 앱로드시 탭 표시 줄을 숨긴 다음 setTimeout () 함수 내에 표시합니다 .
스플래시 오버레이 자체와 동일한 시나리오가 두 시나리오에서 모두 발생합니다. 시작 속성이 설정되어 진정한 기본적으로 다음 사초 (에서 4000 MS ), 그것은으로 설정되어 거짓 .
기본 시작 화면 제거
Ionic-CLI를 사용하면 응용 프로그램이 시작될 때로드되는 기본 시작 화면을 사용할 수 있습니다. 우리는 더 이상 필요하지 않습니다.
따라서 /config.xml을 열고 다음 환경 설정에 붙여 넣으십시오.
<preference name="SplashScreenDelay" value="0"/>
<preference name="ShowSplashScreen" value="false"/>
마지막 생각들
CSS에서 발생하는 애니메이션을 기반으로 setTimeout 지연 시간을 적절히 조정 해야합니다 . 이제 스플래시 페이지에 애니메이션을 적용 할 필요 는 없습니다 . 이온 스플래시 페이지에 HTML과 CSS를 사용할 수있게되었으므로 여러 가지 작업을 수행 할 수 있습니다.