Mengatasi Masalah Fixed Element pada Ionic 4 Angular

Mengatasi Masalah Fixed Element pada Ionic 4 Angular

Pada artikel ini, kita akan membahas bagaimana cara mengatasi masalah fixed element pada Ionic 4 Angular. Fixed element adalah elemen yang memiliki posisi tetap dan tidak bergerak ketika pengguna menggeser layar.

Latar Belakang
Kita memiliki sebuah halaman sederhana pada aplikasi Ionic 4 yang menggunakan Angular sebagai frameworknya. Halaman ini memiliki beberapa komponen, seperti ion-refresher, ngFor, dan ion-infinite-scroll. Kita ingin menambahkan elemen fixed pada halaman ini.

Solusi

Pada awalnya, kita dapat menggunakan slot="fixed" pada elemen yang ingin kita fix. Namun, ada beberapa kasus di mana slot="fixed" tidak berfungsi seperti yang kita harapkan. Oleh karena itu, kita perlu menggunakan atribut style dengan nilai position: relative pada elemen yang ingin kita fix.

Contoh:

<ion-content>
 <div slot='fixed' style="position:relative">Some content</div>
 <!-- lainnya -->
</ion-content>

Dengan demikian, kita dapat membuat elemen fixed yang tidak bergerak ketika pengguna menggeser layar.

Rujukan

Artikel ini didasarkan pada PR (Pull Request) Ionic Team dan diskusi tentang bug slot="fixed" pada Ionic 4. Rujukan lengkapnya dapat ditemukan di GitHub: https://github.com/ionic-team/ionic/issues/17754

Contoh Sederhana

Berikut adalah contoh sederhana dari aplikasi Ionic 4 Angular yang menggunakan fixed element:

<ion-content>
 <div slot='fixed' style="position:relative">Some content</div>

 <ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
 <ion-refresher-content></ion-refresher-content>
 </ion-refresher>

 <div *ngFor="let item of items; let i=index;" class="item">
 Item {{i}}: {{ item }}
 </div>

 <ion-infinite-scroll threshold="100px" (ionInfinite)="loadData($event)">
 <ion-infinite-scroll-content
 loadingSpinner="bubbles"
 loadingText="Loading more data...">
 </ion-infinite-scroll-content>
 </ion-infinite-scroll>
</ion-content>

Dengan menggunakan atribut style dengan nilai position: relative, kita dapat membuat elemen fixed yang tidak bergerak ketika pengguna menggeser layar.