Alpine.js を使用して単純なカルーセルを作成する手順の例を次に示します。 Alpine.js は、反応性を提供する軽量の JavaScript フレームワークで、大量の JavaScript を使用せずにインタラクティブなコンポーネントを構築するために使用できます。
この例では、画像を一度に 1 つずつ表示し、画像間を移動するための「前へ」と「次へ」ボタンを備えた基本的なカルーセルを作成します。始めましょう!
まず、HTML ファイルの先頭に Alpine.js をインクルードします。これを行うには、次のスクリプト タグを追加します:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Alpine.js Carousel</title> <script src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js" defer></script> <style> .carousel { display: flex; justify-content: center; align-items: center; width: 100%; height: 300px; overflow: hidden; position: relative; } .carousel img { width: 100%; transition: opacity 0.5s ease-in-out; opacity: 0; } .carousel img.active { opacity: 1; } </style> </head> <body>
本文内で、カルーセル コンポーネントの div を作成し、それを x-data で初期化して、Alpine.js のプロパティとメソッドを定義します。
<div x-data="carousel()" class="carousel"> <!-- Previous Button --> <button @click="prev" class="absolute left-0 bg-gray-700 text-white px-3 py-2 rounded">Previous</button> <!-- Carousel Images --> <template x-for="(image, index) in images" :key="index"> <img :src="image" :class="{'active': index === currentIndex}" alt="Carousel Image"> </template> <!-- Next Button --> <button @click="next" class="absolute right-0 bg-gray-700 text-white px-3 py-2 rounded">Next</button> </div>
次に、Alpine コンポーネントでカルーセル機能を定義し、画像をナビゲートするための初期データとメソッドを設定します。
<script> function carousel() { return { currentIndex: 0, // Track the index of the current image images: [ 'https://via.placeholder.com/600x300?text=Slide+1', 'https://via.placeholder.com/600x300?text=Slide+2', 'https://via.placeholder.com/600x300?text=Slide+3', ], interval: null, startAutoPlay() { this.interval = setInterval(() => { this.next(); }, 3000); // Change every 3 seconds }, stopAutoPlay() { clearInterval(this.interval); }, // Method to go to the next image next() { this.currentIndex = (this.currentIndex + 1) % this.images.length; }, // Method to go to the previous image prev() { this.currentIndex = (this.currentIndex - 1 + this.images.length) % this.images.length; }, init() { this.startAutoPlay(); } }; } </script>
カルーセル HTML 構造:
Alpine.js データとメソッド:
カルーセルとボタンの位置と可視性のために基本的な CSS スタイルを追加しました。 CSS トランジションにより、画像にフェードイン効果が与えられます。
この例では、自動再生機能とクリック可能なコントロールの両方を提供し、カルーセルをインタラクティブにします。さらにカスタマイズや追加機能が必要な場合はお知らせください。
@ LinkedIn に連絡して、私のポートフォリオをチェックしてください。
私の GitHub プロジェクトにスターを付けてください ⭐️
ソースコード
以上がAlpine.js を使用して、クリック可能なコントロールを備えたシンプルな自動再生カルーセルを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。