Rumah > hujung hadapan web > tutorial js > Animasi Mudah dengan Alpine.js

Animasi Mudah dengan Alpine.js

Susan Sarandon
Lepaskan: 2024-12-02 09:28:13
asal
837 orang telah melayarinya

Easy Animation with Alpine.js

Pengenalan kepada Alpine.js

Alpine.js ialah rangka kerja JavaScript ringan yang membolehkan anda mencipta elemen web dinamik dan interaktif dengan kod yang sangat sedikit. Jika anda ingin menambahkan animasi ringkas pada tapak web anda, Alpine.js ialah pilihan yang bagus kerana ia tidak memerlukan banyak konfigurasi dan berfungsi dengan baik dengan HTML sedia ada anda.

Alpine.js menjadikannya sangat mudah untuk menambahkan elemen dinamik dan animasi ringkas pada halaman web anda tanpa memerlukan rangka kerja yang lebih besar seperti Vue.js atau React. Dengan menggunakan Alpine.js, anda boleh mencapai animasi yang lancar dan menarik secara visual dengan usaha yang minimum.

Cara Menggunakan Alpine.js

Untuk bermula, anda perlu memasukkan Alpine.js dalam projek anda. Anda boleh melakukan ini dengan menambahkan skrip berikut pada fail HTML anda:

<script src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js" defer></script>
Salin selepas log masuk

Atribut tangguh memastikan Alpine.js berjalan selepas HTML dimuatkan sepenuhnya.

Struktur HTML Asas

Untuk mencipta animasi ringkas, mulakan dengan beberapa HTML asas:

<body x-data="{ loading: true, open: false }" x-init="setTimeout(() => loading = false, 2000)">
    <div x-show="loading">



<h2>
  
  
  Explaining the HTML
</h2>

<ul>
<li>
<strong>x-data="{ loading: true, open: false }"</strong>: This attribute creates two state variables called loading and open. loading is initially set to true and open to false.</li>
<li>
<strong>x-init="setTimeout(() => loading = false, 2000)": This attribute sets loading to false after a delay of 2000 milliseconds (2 seconds), simulating the completion of the preloader.
Salin selepas log masuk
  • x-show="loading": This directive shows the preloader while loading is true.
  • x-show="!loading": This hides the main content until loading is set to false.
  • @click="open = !open": When the button is clicked, this toggles the value of open between true and false. Essentially, it shows or hides the elements.
  • x-show="open": This directive controls whether the
    containing each box is visible. It will only be visible if open is true.
  • x-transition: This directive adds a simple transition effect to make each box appear smoothly.
  • Basic CSS Structure

    To make the animation look even better, you can add a bit of CSS to style the container and boxes:

    <style>
      .container {
          text-align: center;
          margin-top: 50px;
      }
    
      .box {
          background: #f0f0f0;
          padding: 20px;
          border-radius: 5px;
          margin-top: 20px;
          display: inline-block;
      }
    
      .preloader {
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          background: rgba(255, 255, 255, 0.8);
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 2em;
      }
    
      @keyframes loadingDots {
          0%, 20% { content: 'Loading'; }
          40% { content: 'Loading.'; }
          60% { content: 'Loading..'; }
          80%, 100% { content: 'Loading...'; }
      }
      .loading-text::after {
          content: 'Loading';
          animation: loadingDots 1.5s infinite;
      }
    </style>
    
    Salin selepas log masuk

    Menjelaskan CSS

    Di sini, kami menambahkan beberapa padding, warna latar belakang dan jejari jidar untuk menjadikan setiap kotak kelihatan lebih berkilat. Kami menggayakan pramuat untuk menutup keseluruhan skrin dengan latar belakang separa lutsinar, menjadikannya berbeza secara visual. Kami juga menambah animasi yang dipanggil loadingDots untuk menjadikan titik selepas "Memuatkan" muncul satu demi satu dalam satu gelung, menjadikan keadaan pemuatan lebih menarik untuk pengguna.

    Kod Lengkap

    Berikut ialah kod lengkap termasuk HTML dan CSS:

    <!DOCTYPE html>
    <html lang="en">
    <kepala>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Contoh Animasi Alpine.js</title>
        <script src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js" tangguh></script>
        <gaya>
            .bekas {
                text-align: tengah;
                jidar atas: 50px;
            }
            .box {
                latar belakang: #f0f0f0;
                padding: 20px;
                jejari sempadan: 5px;
                jidar atas: 20px;
                paparan: inline-block;
            }
            .pramuat {
                kedudukan: tetap;
                atas: 0;
                kiri: 0;
                lebar: 100%;
                ketinggian: 100%;
                latar belakang: rgba(255, 255, 255, 0.8);
                paparan: flex;
                align-item: tengah;
                justify-content: pusat;
                saiz fon: 2em;
            }
            @keyframes loadingDots {
                0%, 20% { kandungan: 'Memuatkan'; }
                40% { kandungan: 'Memuatkan.'; }
                60% { kandungan: 'Memuatkan..'; }
                80%, 100% { kandungan: 'Memuatkan...'; }
            }
            .loading-text::selepas {
                kandungan: 'Memuatkan';
                animasi: memuatkanDots 1.5s tak terhingga;
            }
        </style>
    </head>
    <body x-data="{ loading: true, open: false }" x-init="setTimeout(() => loading = false, 2000)">
        <div x-show="loading">
    
    
    
    <h2>
      
      
      Cara Menguji Kod Anda
    </h2>
    
    <p>Sekarang, buka fail HTML anda dalam penyemak imbas. Anda sepatutnya melihat pramuat berkata "Memuatkan" dengan titik muncul satu demi satu dalam gelung sebelum kandungan utama dipaparkan. Setelah skrin pemuatan hilang selepas 2 saat, anda boleh mengklik butang untuk mendedahkan elemen tersembunyi dengan kesan pudar masuk. Klik butang sekali lagi, dan unsur-unsur akan pudar dengan lancar. Ini cara yang mudah tetapi berkesan untuk menambahkan interaktiviti pada tapak web anda.</p>
    
    <h2>
      
      
      Mengapa Alpine.js Lebih Baik daripada jQuery, Vue atau React
    </h2>
    
    
    Salin selepas log masuk
    • Ringan: Alpine.js jauh lebih kecil berbanding Vue, React atau jQuery. Ini menjadikannya sesuai untuk projek yang lebih kecil di mana anda memerlukan interaktiviti asas tanpa overhed rangka kerja yang besar.

    • Kesederhanaan: Alpine.js membenarkan anda menulis JavaScript terus dalam HTML anda. Anda tidak perlu menyediakan rantai alat binaan yang rumit atau bimbang tentang menguruskan fail komponen. Ini berbeza daripada React atau Vue, yang selalunya memerlukan persediaan yang lebih maju.

    • Integrasi: Alpine.js disepadukan dengan mudah ke dalam halaman HTML sedia ada. Ia tidak memerlukan baik pulih lengkap kod bahagian hadapan anda, tidak seperti rangka kerja seperti Vue atau React.

    • Deklaratif: Alpine.js menggunakan sintaks deklaratif, serupa dengan Vue.js. Anda boleh melihat bagaimana UI anda akan bertindak hanya dengan melihat pada atribut HTML, yang menjadikannya lebih mudah untuk diselenggara.

    • Tiada DOM Maya: Tidak seperti React atau Vue, Alpine.js tidak menggunakan DOM maya, yang bermakna terdapat kurang overhed pengiraan. Untuk banyak projek yang lebih kecil dan lebih ringkas, DOM maya adalah komplikasi yang tidak perlu.

    Secara keseluruhan, Alpine.js menyediakan keseimbangan kefungsian dan kesederhanaan, menjadikannya pilihan ideal untuk pelbagai jenis projek web, terutamanya di mana penyepaduan yang ringan dan mudah adalah kunci.

    Atas ialah kandungan terperinci Animasi Mudah dengan Alpine.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    sumber:dev.to
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Artikel terbaru oleh pengarang
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan