担当領域

コーディング

使用言語等

HTML,CSS,jQuery

制作のポイント

CSS設計の方針

  1. 命名: BEMに準拠
  2. レスポンシブ: 768pxブレークでPC/SP切替
  3. ユーティリティ: .hidden-pc, .hidden-spで要素切り替え、.u-pc, .u-spで実装(直後に一部表記差異あり)
  4. モーダル: dialogでスムーズな開閉を実現

JavaScriptで実装した機能

  • ドロワーメニュー(ハンバーガーとドロワーの連動)
  • アコーディオン(slideToggleを使用)
  • Swiperでギャラリー(インライン設定)
  • モーダル(dialogのshowModal/closeとイベント連動)
  • スムーズスクロール(jQuery animate)
  • ページトップ表示切替
  • Intersection Observer APIでフェードイン

モーダルダイアログの実装で工夫した点

 <dialog>を採用。showModal()と.close()で制御。背景は::backdrop、ロールバック対応で-ms-backdropを追加。overscroll-behavior-y: noneで背景スクロールを防止。

Swiperライブラリの導入について

CDN読み込み。設定はspaceBetween: 82、loop: true、ページネーション・ナビゲーション。カスタム要素を使いマークアップ側から制御。

Intersection Observerを使ったふわっと表示

セクション見出し(.js-in-view)に適用。可視時に.is-in-viewを付与して表示。translateY(24px)→translateY(0)でフェードイン。

フォームの工夫

  • カスタムラジオボタン:.form-radio-textの疑似要素で制御
  • カスタムチェックボックス:同様に疑似要素+背景画像で制御
  • セレクトボックス:appearance: noneとbackgroundで矢印付与
  • ホバー/フォーカス時のborder-color変更

このコーディングで特に工夫した点

モダンAPIと既存ライブラリの組み合わせ。スクロール連動やスライダーは外部実装、フェードインはIntersection Observerで効率的に実現。冗長なJS依存を避けた。

このコーディングでの学び

  1. <dialog>でモーダルをシンプルに実装
  2. Swiperで短時間で高品質なスライダーを提供
  3. Intersection Observerでスクロール連動アニメーションを効率化
  4. <details>で既存のHTML開閉機能を活用
  5. overscroll-behavior-yで背景スクロールを抑制