ライブラリなしで実装する定番UI

全25回

ライブラリを使わず、標準のHTML、CSS、JavaScriptだけを用いて定番のUIを実装してみましょう。ライブラリがなければ難しいと思っていた実装も、ポイントを押さえつつ、きちんと行うことができます。

第25回セレクトボックス:文字キー入力による選択肢項目ジャンプ

最後に残ったキーボード操作処理である、文字キーによる選択肢ジャンプを作ります。これで、すべてを制作者がコントロールするセレクトボックスが完成します。

第24回セレクトボックス:キーボード操作によるメニューの移動と折りたたみ

キーボード操作における、展開された選択肢項目間の移動と、選択またはキャンセルによるメニューの折りたたみを実装します。また、視覚的フォーカスのWAI-ARIA対応も行いましょう。

第23回セレクトボックス:キーボード操作によるメニューの展開

今回からはキーボード操作に対応するための実装を行います。セレクトボックスのキーボード処理はやることが多いのですが、ひとつひとつ対応していきましょう。

第22回セレクトボックス:初期値の設定

セレクトボックスの選択項目の初期状態を設定します。ネイティブの動作を確認し、それからカスタムのセレクトボックスに実装してみましょう。

第21回セレクトボックス:マウス操作への対応(後編)

マウス操作への対応を続けます。開閉処理と選択された項目の反映という、他の動作からも使われる処理をメソッドとして作成します。

第20回セレクトボックス:マウス操作への対応(前編)

すべてのUIを制作者が実装する方法でセレクトボックスを作成します。作成したHTMLとCSSにJavaScriptで機能を実装していきます。まずはマウス操作に対応しましょう。

第19回セレクトボックス:基礎部分のHTMLとスタイル設定

セレクトUIの見た目だけでなく、選択肢メニューも含めたすべてのUIをカスタムしていきます。まずはベースとなるHTMLとCSSの設定を見てみましょう。

第18回セレクトボックス:最低限のカスタムで実装する

セレクトUIの見た目だけをカスタムする方法を実装します。ブラウザネイティブのセレクトボックスをそのまま利用できるので、各OSとブラウザの多様な選択肢メニューも利用できる方法です。

第17回セレクトボックス:ブラウザによる違いの確認と独自実装の検討

セレクトボックスはブラウザネイティブのUIが用意されており、意外と高機能です。まずはブラウザネイティブの機能を確認して、どこまで独自の実装を行うか検討していきます。

第16回カルーセルUI:番外編 Pointer Eventsを使ったタッチ環境以外への対応

前回でカルーセルUIが完成しました。番外編として、今回の要件には含まれていませんが、「タッチ操作に加えて、マウスやペンでもスワイプ動作を行う」という対応について解説します。

第15回カルーセルUI:自動再生のアクセシビリティ対応

カルーセルUIに自動再生機能を実装する場合は、アクセシビリティについて考慮することが望ましいと言えます。そのため、実装した自動再生の開始/停止ボタンとその処理の関連付けを行います。

第14回カルーセルUI:自動再生機能の実装

スワイプアクションまで実装したカルーセルUIに、自動再生機能を加えていきます。バナーとして使うことを想定し、パネル上にカーソルがある場合は一時的に自動再生を停止するようにしましょう。

第13回カルーセルUI:スワイプアクションへの対応 その2

タッチ動作を検知するためのもう一つの方法である、Pointer Everntsを実装します。イベントハンドラで実行する処理は前回解説したTouch Eventsと変わりありませんので、イベント処理に気をつけて行いましょう。

第12回カルーセルUI:スワイプアクションへの対応 その1

カルーセルUIに、タッチスクリーンのスワイプ動作を実装します。Touch EventsとPointer Eventsという、タッチ動作を検知する2つの方法のうち、まずはTouch Eventsを実装していきます。

第11回カルーセルUI:各種ナビゲーションの実装その2

前回に引き続き、サンプルにカルーセルUIの機能を実装していきます。JavaScriptでインジケータ部分を作り、CSSでレイアウトを調整し、各種ナビゲーションを完成させます。

第10回カルーセルUI:各種ナビゲーションの実装その1

レイアウトとアニメーション動作ができたサンプルに、カルーセルUIの各種ナビゲーションを実装していきます。今回はCSSでレイアウトしやすいようにHTMLを作り、JavaScriptで前/次ボタンを実装します。

第9回カルーセルUI:要件決定とアニメーション動作の作成

ECサイトやコーポレートサイトでよく見かける、カルーセルUIの実装を解説していきます。ライブラリやプラグインは数多くありますが、基本的な作り方を学ぶことでさまざまな要件に対応できるようになりましょう。

第8回タブUI:キーボードインタラクション

マークアップとスタイル指定、タブの切り替え機能まで作成したタブUIに、キーボードインタラクションを実装していきます。非選択状態のタブにキーボード操作で到達する方法を考えていきましょう。

第7回タブUI:スタイル指定とJSの実装

マークアップだけを行ったタブUIに、スタイルを指定します。さらに、タブをクリックしたらタブパネルが切り替わるという、タブUIとしての機能を作成していきましょう。

第6回タブUI:マークアップの各要素

ウェブページでよく見かけるUIのひとつ、タブUIの実装を解説していきます。タブUIはマークアップ自体は一見難しくなさそうですが、考えるべきことは意外と多いUIです。

第5回スティッキーナビ:違和感のない動作の実装

スティッキーナビとは、ある一定の位置までスクロールしていくとナビゲーションが画面上に固定配置されるという動作のUIです。違和感のない動作になるように、注意して実装してみましょう。

第4回ローディング画面:実装とそのポイント

今回は1回の記事でファイルのローディング時に表示される画面の実装を解説します。くるくる回るグラフィックを表示する画面にしてみましょう。roleやaria属性を適切に使うことが大切です。

第3回ドロワーナビ:フォーカスの制御

Tabキーでフォーカスを移動したり、Escキーでドロワーを閉じたりといったキーボードでの操作を実装します。この実装はドロワーの動きとのタイミング設定が重要です。実装だけでなく、要件もじっくり考えましょう。

第2回ドロワーナビ:スクロール関連の制御

ドロワーナビの土台はできましたが、ドロワー開閉時のコンテンツ表示に細かな不具合が残っています。それはスクロールバーの出現を踏まえた適切な処理が行われていないからです。今回はこの処理を実装します。

第1回ドロワーナビの基本

ライブラリを使わず、標準のHTML、CSS、JavaScriptだけを用いて、ドロワータイプのナビゲーションを実装してみましょう。今回はまず全体の大枠を決め、ポイントを押さえながら、基本的な動作までを作ります。