Close Menu
Safar SeptyadiSafar Septyadi
    Instagram LinkedIn WhatsApp
    Instagram LinkedIn WhatsApp
    Safar SeptyadiSafar Septyadi
    • Home
    • Programmer
      1. Coding
      2. View All
      Kirim Email Pakai Mail() di CPanel Tidak Bisa Ini Penyebabnya!

      Kirim Email Pakai Mail() di CPanel Tidak Bisa? Ini Penyebabnya!

      March 15, 2025
      Swagger Cara Membuat Dokumentasi API Laravel Otomatis

      Swagger: Cara Membuat Dokumentasi API Laravel Otomatis

      January 24, 2025
      Membuat Responsive Layout Tanpa Media Query di CSS

      Membuat Responsive Layout Tanpa Media Query di CSS

      January 18, 2025
      Hindari Error Relasi Kosong di Laravel dengan withDefault

      Hindari Error Relasi Kosong di Laravel dengan withDefault

      January 5, 2025
      Kenapa Harus Pakai Visual Studio Code untuk Ngoding

      Kenapa Harus Pakai Visual Studio Code untuk Ngoding?

      March 27, 2025
      3 Konsep Utama Belajar Frontend Framework

      3 Konsep Utama Belajar Frontend Framework

      February 23, 2025
      Takut Persaingan di Dunia Programmer Coba Jadi Data Scientist!

      Takut Persaingan di Dunia Programmer? Coba Jadi Data Scientist!

      February 21, 2025
      React.js Resmi Men-deprecate Create-React-App

      React.js Resmi Men-deprecate Create-React-App

      February 19, 2025
    • Teknologi
      1. Berita
      2. Digital Marketing
      3. Tutorial
      4. View All
      Viral #KaburAjaDulu Ungkapan Kekecewaan atau Harapan Baru

      Viral #KaburAjaDulu: Ungkapan Kekecewaan atau Harapan Baru?

      February 17, 2025
      Viral, Usia Pensiun Jadi 59 Tahun Ini Maksudnya

      Viral, Usia Pensiun Jadi 59 Tahun? Ini Maksudnya

      January 12, 2025
      Keluh Kesah Pengguna Coretax Faktur Pajak Gagal Terbit

      Keluh Kesah Pengguna Coretax: Faktur Pajak Gagal Terbit?

      January 7, 2025
      Upah Minimum Provinsi Terbaru 2025 Seluruh Indonesia

      Upah Minimum Provinsi Terbaru 2025 Seluruh Indonesia

      December 28, 2024
      Jasa SEO Bulanan Terbaik Optimasi Website Berkelanjutan untuk Ranking #1!

      Jasa SEO Bulanan Terbaik: Optimasi Website Berkelanjutan untuk Ranking #1!

      March 18, 2025
      Mengapa Desain Logo Harus Menarik Ini 7 Alasannya!

      Mengapa Desain Logo Harus Menarik? Ini 7 Alasannya!

      January 10, 2025
      Stop Beli Followers! Ubah Mindset Agar Sosmed Cepat Growth

      Stop Beli Followers! Ubah Mindset Agar Sosmed Cepat Growth

      October 30, 2024
      Fenomena Lowongan Kerja di Bidang Sosial Media

      Fenomena Lowongan Kerja di Bidang Sosial Media

      October 22, 2024
      Cara Login Instagram Help us confirm you own this account

      Cara Login Instagram: Help us confirm you own this account

      March 6, 2025
      Tukar Pulsa ke OVO

      Cara Mudah Tukar Pulsa ke OVO Rate Tinggi Hanya 5 Menit

      January 22, 2025
      Membuat Responsive Layout Tanpa Media Query di CSS

      Membuat Responsive Layout Tanpa Media Query di CSS

      January 18, 2025
      Keyword Brand Kamu Kena Spam Situs Judi Online? Ini Solusinya!

      Keyword Brand Kamu Kena Spam Situs Judi Online? Ini Solusinya!

      January 15, 2025
      Rekomendasi Laptop AI 2025 Biar Aktivitas Harian Kamu Makin Ringan

      Rekomendasi Laptop AI 2025: Biar Aktivitas Harian Kamu Makin Ringan

      May 10, 2025
      Cara Gampang Download Video Short Youtube! Sat Set!

      Cara Gampang Download Video Short YouTube! Sat Set!

      March 9, 2025
      Loading Website WordPress Kamu Lambat Coba Cara Ini!

      Loading Website WordPress Kamu Lambat? Coba Cara Ini!

      March 8, 2025
      Cara Login Instagram Help us confirm you own this account

      Cara Login Instagram: Help us confirm you own this account

      March 6, 2025
    • Dunia Kerja
      1. Freelance
      2. Kerja Online
      3. Bisnis
      4. Pendidikan
      5. Pengembangan Diri
      6. View All
      5 Ide Usaha yang Cocok untuk Mahasiswa Peluang Sambil Kuliah

      5 Ide Usaha yang Cocok untuk Mahasiswa: Peluang Sambil Kuliah

      October 15, 2024
      Lowongan Kerja Part Time Online di Rumah untuk Pelajar

      Lowongan Kerja Part Time Online di Rumah untuk Pelajar

      September 22, 2024
      Tips Cara Menjawab Language Knowledge Verification di UHRS

      Tips Cara Menjawab Language Knowledge Verification di UHRS

      August 13, 2024
      5 Jenis Kerja Part Time yang Paling Dicari di 2024

      5 Jenis Kerja Part Time yang Paling Dicari di 2024

      August 11, 2024
      Tips Agar Banyak yang Order Backlink di Seedbacklink

      Tips Agar Banyak yang Order Backlink di Seedbacklink

      March 4, 2025
      Mau Jualan Di Tiktok Ini Cara Daftar TikTok Shop Untuk Pemula

      Mau Jualan Di Tiktok? Ini Cara Daftar TikTok Shop Untuk Pemula

      January 2, 2025
      5 Kebiasaan Saat WFH yang Bisa Menurunkan Produktivitas

      5 Kebiasaan Saat WFH yang Bisa Menurunkan Produktivitas

      December 13, 2024
      Apa Itu Digital Nomad Gaya Hidup di Era Kerja Remote

      Apa Itu Digital Nomad? Gaya Hidup di Era Kerja Remote

      November 26, 2024
      Jangan Salah Langkah! Ini Cara Cerdas Urus Pendirian & Izin Usaha yang Mudah

      Jangan Salah Langkah! Ini Cara Cerdas Urus Pendirian & Izin Usaha yang Mudah

      February 27, 2025
      Transformasi Digital dalam Bisnis Mengapa Perusahaan Harus Beradaptasi

      Transformasi Digital dalam Bisnis: Mengapa Perusahaan Harus Beradaptasi?

      February 26, 2025
      Jakarta Garden City Calon Pusat Bisnis & Hunian Berkelas

      Jakarta Garden City: Calon Pusat Bisnis & Hunian Berkelas

      February 16, 2025
      Peluang Usaha Hotel Kecil yang Menguntungkan Di Era Sekarang

      Peluang Usaha Hotel Kecil yang Menguntungkan Di Era Sekarang

      January 28, 2025
      Daftar Pertanyaan Umum Untuk LPDP, Biar Lolos Interview!

      Daftar Pertanyaan Umum Untuk LPDP, Biar Lolos Interview!

      March 16, 2025
      Universitas Nasional Surakarta (UNASURAKARTA): Kuliah Murah dan Berkualitas di Solo

      Universitas Nasional Surakarta (UNASURAKARTA): Kuliah Murah dan Berkualitas di Solo

      December 19, 2024
      Info Beasiswa Luar Negeri S1S2S3 Di Benua Asia Terupdate!

      Info Beasiswa Luar Negeri S1/S2/S3 Di Asia Terupdate!

      September 27, 2024
      Info Beasiswa S1S2S3 Dalam Negeri Terupdate!

      Info Beasiswa S1/S2/S3 Dalam Negeri Terupdate!

      September 24, 2024
      Kita Tidak Sepenting Itu The Power of Bodoamat!

      Kita Tidak Sepenting Itu: The Power of Bodoamat!

      March 20, 2025
      5 Kebiasaan Ini Bisa Meningkatkan Daya Pikir Otak Kamu!

      5 Kebiasaan Ini Bisa Meningkatkan Daya Pikir Otak Kamu!

      March 12, 2025
      Jangan Mengajarkan Orang “Berenang” Diwaktu Yang Salah

      Jangan Mengajarkan Orang “Berenang” Diwaktu Yang Salah

      February 15, 2025
      5 Pelatihan Pengembangan Diri yang Wajib Dicoba!

      5 Pelatihan Pengembangan Diri yang Wajib Dicoba!

      February 13, 2025
      Haruskah Mencintai Pekerjaan Kita

      Haruskah Mencintai Pekerjaan Kita?

      March 30, 2025
      Lama Menganggur Bukan Berarti Gak Kompeten!

      Lama Menganggur Bukan Berarti Gak Kompeten!

      March 21, 2025
      9 Realita Pahit di Dunia Kerja, Yang Diluar Pikiran Kamu

      9 Realita Pahit di Dunia Kerja, Yang Diluar Pikiran Kamu

      March 19, 2025
      Perbedaan Human Resources dengan Human Capital

      Perbedaan Human Resources dengan Human Capital

      March 13, 2025
    • Aplikasi
      • Kalkulator Perhitungan Pesangon
      • Kalkulator Perhitungan THR
      • Kalkulator Perhitungan Hak Cuti Diuangkan
      • Kalkulator Perhitungan Upah Lembur
      • Cek Daftar Loker Penipu
      • Rekomendasi Tanggal Cuti
    • Lowongan Kerja
    • Games
    Safar SeptyadiSafar Septyadi
    Coding

    Membuat loading content seperti di tokopedia

    Safar SeptyadiBy Safar SeptyadiOctober 16, 2023No Comments6 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Loading Content
    Loading Content
    Share
    Facebook Twitter LinkedIn Pinterest Email

    Pada era digital saat ini, pengalaman pengguna (user experience) menjadi salah satu faktor kunci dalam menentukan kesuksesan sebuah situs web atau aplikasi mobile. Pengguna tidak hanya memperhatikan konten yang ditampilkan, tetapi juga menilai seberapa cepat dan mulusnya proses pemuatan konten. Waktu pemuatan yang lama dapat menyebabkan pengguna kehilangan minat dan meninggalkan situs web atau aplikasi sebelum mereka melihat kontennya. Oleh karena itu, penting bagi frontend untuk memperhatikan aspek loading content agar dapat meningkatkan pengalaman pengguna.

    Daftar Isi

    • Mengapa Loading Content Penting?
    • Apa itu skeleton loading?
    • Bagaimana cara membuat skeleton loading?
      • Membuat Struktur HTML Yang Sama
      • Memberi Efek Animasi Pada Skeleton Menggunakan CSS
      • Menampilkan Dan Menyembunyikan Skeleton Menggunakan Javascript
    • Implementasi Lengkap HTML, CSS, Javascript

    Mengapa Loading Content Penting?

    Loading content merupakan proses di mana situs web atau aplikasi mengambil dan menampilkan konten kepada pengguna. Proses ini dapat meliputi pengambilan gambar, teks, video, atau elemen-elemen lain yang dibutuhkan untuk menampilkan halaman atau layar aplikasi. Ketika loading content berlangsung, pengguna biasanya melihat indikator seperti loading spinner atau tanda bahwa konten sedang dimuat.

    Loading content yang lambat dapat menjadi tantangan besar bagi frontend developer dan pengguna. Bagi pengguna, loading content yang lambat dapat menyebabkan frustrasi, kehilangan minat, dan bahkan meninggalkan situs web atau aplikasi yang sedang mereka akses. Namun Bagi frontend developer, tantangan utamanya adalah mengoptimalkan performa situs web atau aplikasi agar dapat memuat konten dengan cepat, terutama di bawah kondisi jaringan yang buruk atau menggunakan perangkat dengan spesifikasi rendah. Untuk mengatasi masalah loading content yang lambat, banyak frontend developer mulai menggunakan teknik skeleton loading.

    Apa itu skeleton loading?

    Skeleton loading, atau sering disebut juga “shimmering”, adalah teknik yang digunakan untuk memberikan umpan balik visual kepada pengguna saat konten sedang dimuat. Daripada menampilkan halaman kosong atau loading spinner yang membosankan, skeleton loading menampilkan kerangka atau “rangkaian” (skeleton) dari elemen-elemen yang akan muncul. Ini menciptakan ilusi bahwa konten segera akan tersedia, yang secara signifikan meningkatkan persepsi kecepatan pemuatan dan mengurangi frustrasi pengguna. Website besar seperti Tokopedia, Facebook, dan LinkedIn telah menggunakan teknik ini dengan baik.

    Bagaimana cara membuat skeleton loading?

    Untuk mengimplementasikan skeleton loading, kita perlu menentukan elemen-elemen utama yang akan ditampilkan sebagai kerangka. Misalnya, pada halaman profil pengguna, elemen utama seperti foto profil, nama pengguna, dan biografi dapat ditampilkan sebagai kerangka. Setelah itu, kita dapat menggunakan HTML, CSS, dan JavaScript untuk membuat efek skeleton loading.

    Membuat Struktur HTML Yang Sama

    Pertama, kita terlebih dahulu menentukan struktur HTML dasar halaman dengan menambahkan elemen-elemen yang akan ditampilkan sebagai kerangka dan konten sebenarnya. Dalam contoh gambar di atas, struktur HTML mengandung elemen untuk avatar pengguna, nama pengguna, dan biografi. Setelah menentukan struktur dasar halamannya kita tinggal mengcopy paste struktur tersebut untuk dijadikan skeleton.

    //Struktur Dasar Halaman
    <div class="profile-content hidden">
        <img class="avatar" src="me.jpg" alt="User Avatar">
        <div class="user-info">
            <div class="username">Safar Septyadi</div>
            <div class="bio">Fullstack Developer</div>
        </div>
    </div>
    
    //Struktur Skeleton Loading
    <div class="profile-skeleton">
        <div class="avatar"></div>
        <div class="user-info">
            <div class="username"></div>
            <div class="bio"></div>
        </div>
    </div>

    Memberi Efek Animasi Pada Skeleton Menggunakan CSS

    Kedua, menentukan style untuk elemen-elemen tersebut, termasuk warna, bentuk, dan animasi. Dalam contoh tersebut, CSS yang digunakan untuk memberikan efek animasi pada elemen-elemen kerangka tersebut menggunakan teknik linear gradient dan keyframes. Yaitu kita cukup menambahkan properti CSS yaitu animation.

    body {
        font-family: Arial, sans-serif;
        text-align: center;
    }
    
    .profile-skeleton {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        margin-top: 20px;
    }
    
    .profile-skeleton .avatar {
        width: 100px;
        height: 100px;
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: loading 1.5s infinite;
        border-radius: 50%;
        margin-bottom: 20px;
    }
    
    .profile-skeleton .username {
        margin:0 auto;
        height: 20px;
        width: 150px;
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0f0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: loading 1.5s infinite;
        margin-bottom: 10px;
    }
    
    .profile-skeleton .bio {
        height: 15px;
        width: 200px;
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0f0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: loading 1.5s infinite;
    }
    
    .profile-content.hidden {
        display: none;
    }
    
    .profile-content{
        margin-top:20px;
    }
    
    .profile-content img{
        width: 100px;
        height: 100px;
        border-radius: 100%;
        margin-bottom:20px;
    }
    
    .profile-content .user-info .username{
        margin-bottom:10px;
    }
    
    @keyframes loading {
        0% {
            background-position: -200% 0;
        }
        100% {
            background-position: 200% 0;
        }
    }
    

    Menampilkan Dan Menyembunyikan Skeleton Menggunakan Javascript

    Ketiga, bagaimana cara kita mengaplikasikan loading skeleton ke halaman tersebut? Saya akan menggunakan javascript untuk menampilkan dan menyembunyikan loading skeleton yang sudah kita buat. Sebelumnya div yang saya munculkan terlebih dahulu adalah div skeleton loading yaitu div profile-skeleton. Untuk div profile-content akan saya hidden terlebih dahulu dengan memberikan class hidden.

    Ketika halaman pertama kali dimuat akan muncul loading skeleton dan saya akan menggunakan event DOMContentLoaded untuk mengetahui apakah content sudah dimuat dengan sempurna. Jika sudah kita bisa men-set display pada element skeleton menjadi none. Dan memunculkan profile-content yang sebenenarnya dengan menghapus class hidden.

    document.addEventListener("DOMContentLoaded", function () {
        // Simulasi waktu pemuatan konten
        setTimeout(function () {
            // Sembunyikan skeleton loading
            document.querySelector(".profile-skeleton").style.display = "none";
            
            // Tampilkan konten sebenarnya
            document.querySelector(".profile-content").classList.remove("hidden");
        }, 3000); // Ubah nilai ini sesuai dengan waktu pemuatan konten yang sebenarnya
    });
    

    Dengan menggabungkan ketiga langkah ini, kamu dapat membuat efek skeleton loading yang menarik dan memperbaiki pengalaman pengguna secara signifikan.

    Implementasi Lengkap HTML, CSS, Javascript

    Berikut adalah implementasi lengkap untuk animasi loading skeleton menggunakan HTML, CSS, dan JavaScript:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Loading Content Skeleton</title>
    </head>
    <style>
    body {
        font-family: Arial, sans-serif;
        text-align: center;
    }
    
    .profile-skeleton {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        margin-top: 20px;
    }
    
    .profile-skeleton .avatar {
        width: 100px;
        height: 100px;
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: loading 1.5s infinite;
        border-radius: 50%;
        margin-bottom: 20px;
    }
    
    .profile-skeleton .username {
        margin:0 auto;
        height: 20px;
        width: 150px;
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0f0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: loading 1.5s infinite;
        margin-bottom: 10px;
    }
    
    .profile-skeleton .bio {
        height: 15px;
        width: 200px;
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0f0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: loading 1.5s infinite;
    }
    
    .profile-content.hidden {
        display: none;
    }
    
    .profile-content{
        margin-top:20px;
    }
    
    .profile-content img{
        width: 100px;
        height: 100px;
        border-radius: 100%;
        margin-bottom:20px;
    }
    
    .profile-content .user-info .username{
        margin-bottom:10px;
    }
    
    @keyframes loading {
        0% {
            background-position: -200% 0;
        }
        100% {
            background-position: 200% 0;
        }
    }
    </style>
    <body>
      <div class="profile-skeleton">
          <div class="avatar"></div>
          <div class="user-info">
              <div class="username"></div>
              <div class="bio"></div>
          </div>
      </div>
      <div class="profile-content hidden">
          <img class="avatar" src="me.jpg" alt="User Avatar">
          <div class="user-info">
              <div class="username">Safar Septyadi</div>
              <div class="bio">Fullstack Developer</div>
          </div>
      </div>
      <script>
        document.addEventListener("DOMContentLoaded", function () {
            // Simulasi waktu pemuatan konten
            setTimeout(function () {
                // Sembunyikan skeleton loading
                document.querySelector(".profile-skeleton").style.display = "none";
                
                // Tampilkan konten sebenarnya
                document.querySelector(".profile-content").classList.remove("hidden");
            }, 3000); // Ubah nilai ini sesuai dengan waktu pemuatan konten yang sebenarnya
        });
      </script>
    </body>
    </html>

    Jika kamu ingin mengerjakannya secara cepat saya menyarankan untuk menggunakan beberapa plugin yang sudah tersedia seperti di jquery menggunakan plugin jquery.skeleton.loader atau di reactjs kamu bisa menginstall react-loading-skeleton. Tapi disini saya membuatnya dari 0 menggunakan HTML, CSS dan Javascript agar flow dari content loading skeleton ini dapat dipahami.

    Baca Juga: Submit button loading in Javascript and CSS

    Dengan menggunakan teknik skeleton loading ini, kamu dapat meningkatkan user experience pada situs web atau aplikasi kamu, sehingga pengguna akan lebih betah dan puas dalam menggunakan produk yang kamu tawarkan. Selamat mencoba!

    css html javascript
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Safar Septyadi
    • Website
    • Instagram

    Related Posts

    Kenapa Harus Pakai Visual Studio Code untuk Ngoding

    Kenapa Harus Pakai Visual Studio Code untuk Ngoding?

    March 27, 2025
    Kirim Email Pakai Mail() di CPanel Tidak Bisa Ini Penyebabnya!

    Kirim Email Pakai Mail() di CPanel Tidak Bisa? Ini Penyebabnya!

    March 15, 2025
    Cara Login Instagram Help us confirm you own this account

    Cara Login Instagram: Help us confirm you own this account

    March 6, 2025
    Leave A Reply Cancel Reply

    niagahoster
    Kerja Online
    Vendor UHRS
    4 Mins Read
    4 Vendor Terbaik untuk UHRS, Pembayaran Cepat dan Aman
    Freelance March 17, 2024

    Selamat datang, teman-teman! Semoga kalian semua baik-baik saja. Artikel kali ini, saya akan memberitahu kalian…

    Freelance UHRS

    Kerja Online Bisa Dapat Puluhan Juta dari Platform UHRS

    February 21, 2024
    Account not authorized. Failed attempt to log in. You are blocked from working in UHRS.

    Akun UHRS Diblokir, Bagaimana Solusinya?

    May 28, 2024
    Paling Populer
    • Ini Dia Daftar Alamat Loker Penipuan Interview!
    • Kerja Online Bisa Dapat Puluhan Juta dari Platform UHRS
    • Cara Cek Lulusan Universitas Seseorang Melalui Website Resmi
    • HR: Apa yang Akan Anda Lakukan Jika Diterima di Perusahaan Ini?
    • Mengapa Ada Pengiklan Anonim di Platform Lowongan Kerja?
    Partner
    Seedbacklink
    Instagram LinkedIn WhatsApp
    • About Me
    • Contact
    • Advertise with Us
    • Guest Post
    • Sitemap
    • Disclaimer
    • Terms of Service
    • Privacy Policy
    © 2021 - 2025 safarseptyadi.com. All Rights Reserved

    Type above and press Enter to search. Press Esc to cancel.