Skip to content

richardimaoka/tutorial-carousel-html

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

0. はじめに

HTML と CSS の機能のみでカルーセルを作成するチュートリアルを用意しました。理解の前に「動かす感覚」を味わってもらうため、ほぼ全てコピー&ペーストのみで、素早く進められるチュートリアルになっています。

<iframe width="640" height="360" src="https://www.youtube.com/embed/wLTp7YvLBSc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

git レポジトリのクローン

🔶 Action: ターミナルで以下のコマンドを実行してください

git clone https://github.com/richardimaoka/tutorial-carousel-html.git
cd tutorial-carousel-html

1. HTMLのセットアップ

このチュートリアルでは index.html ファイルのみを使用します。

🔶 Action: 以下のコマンドを入力してください。

git apply patches/db47c7f.patch # initial HTML

✅ Result: index.html が生成されます。

🔶 Action: ブラウザからindex.htmlを開いてください。

✅ Result: ブラウザで以下のように表示されればOKです

2022-06-06_06h01_51.png

2. カルーセルのスライダーを作成

まずはカルーセルで使う画像を並べて表示します。

🔶 Action: 以下のコマンドを入力してください。

git apply patches/365ac03.patch # add images

🔶 Action: ブラウザでindex.htmlをリロードしてください。

✅ Result: 以下のように表示されればOKです。この時点では縦に並んでいます。

2022-06-06_06h21_02.png

🔶 Action: 以下のコマンドを入力してください。

git apply patches/cd0b584.patch # display: flex

🔶 Action: ブラウザでindex.htmlをリロードしてください。

✅ Result: 以下のように表示されればOKです

2022-06-06_06h21_52.png

画面下にスライダーが表示されましたが、これはブラウザビューポートのスライダーであって、まだカルーセルのスライドではありません。

🔶 Action: 以下のコマンドを入力してください。

git apply patches/ca39bc3.patch # overflow-x: auto

🔶 Action: ブラウザでindex.htmlをリロードしてください。

✅ Result: 以下のように表示されればOKです。

<iframe width="640" height="360" src="https://www.youtube.com/embed/FWGRBRw7sLk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

画像のすぐ下、つまりカルーセルの内部にスライダーが移動しました。

3. カルーセルの動作を制御するボタン

ここからカルーセルをスライドさせるためのボタンを配置しますが、一気に実装してしまうとコードの差分が大きくなって、何がどう作用しているのか分かりづらくなってしまいます。そこでまずは、何も動作しないボタンを配置します。

🔶 Action: 以下のコマンドを入力してください。

git apply patches/392ba1b.patch # add barebone buttons

🔶 Action: ブラウザでindex.htmlをリロードしてください。

✅ Result: 以下のように表示されればOKです。

2022-06-06_06h32_19.png

小さくてわかりにくいですが、ボタンが画像の左下に配置されました。

次に、ボタンを使ってカルーセルを動かす部分を実装します。

🔶 Action: 以下のコマンドを入力してください。

git apply patches/dc7e1df.patch # button links

✅ Result: 以下のように表示されればOKです。

<iframe width="560" height="315" src="https://www.youtube.com/embed/qi_HzS4SN80" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

次は、カルーセル内の次の画像に遷移するときの動きをスムーズにします。

🔶 Action: 以下のコマンドを入力してください。

git apply patches/f1a8c6b.patch # smooth scrolling

🔶 Action: ブラウザでindex.htmlをリロードしてください。

✅ Result: 以下のように表示されればOKです。

<iframe width="560" height="315" src="https://www.youtube.com/embed/MsyqxpK6x2s" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

🔶 Action: 以下のコマンドを入力してください。

git apply patches/f05034a.patch # hide scroll bar

🔶 Action: ブラウザでindex.htmlをリロードしてください。

2022-06-06_07h23_18.png

🔶 Action: 以下のコマンドを入力してください。

git apply patches/bbbc003.patch # centering buttons

🔶 Action: ブラウザでindex.htmlをリロードしてください。

✅ Result: 以下のように表示されればOKです。

2022-06-06_07h23_48.png

🔶 Action: 以下のコマンドを入力してください。

git apply patches/915876d.patch # decorate buttons

🔶 Action: ブラウザでindex.htmlをリロードしてください。

✅ Result: 以下のように表示されればOKです。

<iframe width="640" height="360" src="https://www.youtube.com/embed/wLTp7YvLBSc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

4. まとめ

以上 HTML と CSS の 機能のみでカルーセルを実装しました。カルーセルのアイテム(画像を囲む <div>)一つ一つに対して、<div id="#img-1">のような id アトリビュートを付与し、移動の際は <a href="#img-1">のように id アトリビュートの値を指定したリンクをクリックすることで、 カルーセルの特定のアイテムが表示される状態になります。

これには制限があり、1 ページ内に複数のカルーセルが配置されるような場合、その中での一つのカルーセルの状態しか指定できません。こういった制限を避けようとすると、JavaScript を使う必要に迫られますが、React などを使わない素の JavaScript で一からこの動作を実現するのはけっこう大変です。

JavaScript を使う場合には、以下のリンク先にあるように、React を使うほうが簡単でしょう。

関連するチュートリアル

参考文献

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages