Rumah >hujung hadapan web >tutorial js >Animasi Mudah dengan 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.
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>
Atribut tangguh memastikan Alpine.js berjalan selepas HTML dimuatkan sepenuhnya.
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.
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>
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.
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>
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!