JavaScript
モジュール
モジュールの練習ということで、これまで自作したスライダーやモーダルなど、
webサイト制作でも使用頻度高めのあれこれをモジュール化。
ただしこれが正しい方法なのかはまだ何とも言えないので、案件で使用する際は臨機応変に使えるとこだけ切り出していく所存。
バンドラーはwebpack 5を使用。
片道スライダー
- 仕様
-
- レスポンシブ対応。
- prevとnextボタンで前後に進めるが、前後のあるときだけ対応するボタンを表示。
- カレントポインターで見たい順番にスキップができる。
- マウス操作、フリック・スワイプ操作可能(スライドする要素にリンクがあっても可)
- 制作条件
- ひな型のカルーセルクラスを継承して、片道スライダーのサブクラスをつくる。
ループスライダー
- 仕様
-
- レスポンシブ対応。
- 自動でループさせる。
- prevとnextボタンで前後に進める。
- カレントポインターで見たい順番にスキップができる。
- マウス操作、フリック・スワイプ操作可能(スライドする要素にリンクがあっても可)
- 制作条件
- ひな型のカルーセルクラスを継承して、ループスライダーのサブクラスをつくる。
ループクロスフェード
- 仕様
-
- レスポンシブ対応。
- フェードタイプ。
- 自動でループさせる。
- カレントポインターで見たい順番にスキップができる。
- 制作条件
- ひな型のカルーセルクラスを継承して、ループクロスフェードのサブクラスをつくる。
モーダル
- 仕様
-
- モーダルの背景レイヤーはDOMで生成。
- モーダルを開いているときは画面をスクロールさせない。
- モーダルコンテンツ(パネル)以外をクリックすると閉じる。
- モーダルコンテンツ(パネル)の高さは最大ウィンドウサイズの90%でそれ以上の内容はスクロール表示になる。
- デフォルトで
- 改善点
- chromeでのみ、内容量の多いモーダルコンテンツがぼやける現象を確認。原因調査中。
タブ切り替え
- 仕様
-
- レスポンシブ対応。
- 高さは内容によって可変。
- 高さを固定したいときはcssで高さを追加する。
タブメニュー1の内容。
舌は顔のかっこう位曲を猫を近づけうしうた。ではすぐまっ黒ただという楽長ましまし。同じずたんましはたでは棒の変らのときをもぜひだめたますが、みんなまでゴーシュに待てれんたない。叫びすぎおまえは手ですばやくだてさっきの首の狸目に叫び第三代り者のあんばいへ倒れるて行ったまし。
タブメニュー2の内容。
details&summaryカスタマイズ
- 仕様
-
- <details>と<summary>の開閉コンテンツをjsでカスタマイズ。
- メソッドは3パターン。
- 折り畳み効果はcssでつける。
- 改善点
- 他にもっとスマートな書き方がある気がする。
開いている要素は常にひとつ
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
折り畳みにエフェクトをつける
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
折り畳みエフェクト付き+開いている要素は常にひとつ
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
この部分がボタンの役割
表示、非表示される内容
summaryをクリックすると「details」内のsummaryタグ以外の部分が開閉されるようになる。
スクロールアニメーション
- 仕様
-
- スクロールの量に合わせて、動きをつける。
- JavaScriptで処理するのはターゲットの要素(.u-appear)が見えたら、is-showクラスを付けるだけ。
- エフェクトはcssで好きなように追加。その際「data-animation」に任意の値でスタイルを設定する。