jQuery・サイド固定の縦100%とAmazonライクなマウスオーバーメガメニューを作りました [PC限定/IE8対応]

150816_001

ふと「Amazonのメガメニューはどの程度のコードで作れるの?」と思い、暇つぶしで作成。
タッチデバイスでは使えないPC限定、ついでになぜか固定サイドメガメニューも作成。

検証済みブラウザとOS

  • IE 8~ ※一部CSSはIE8不可
  • Firefox
  • Google Chrome
  • Safari
  • Windows 7
  • OS X Yosemite

 

このjQueryで出来ること、出来ないこと

出来ること
  • 無駄なアニメーションを排除しているので、直感的な操作を期待できる
  • マウスを置くコンテンツの範囲が広く、訪問者のストレスを小さくする
  • 多数のカテゴリを省スペースでまとめられる
出来ないこと
タッチデバイスでの動作

 

要点とコード

  • jQueryは普通のコード
  • 子セレクタを使い、直下のリストタグを表示・非表示操作

 

サイド固定縦100%

  • トリガーは .open
  • position: fixed; で固定させ、margin-left で強引に表示
  • 階層を管理しやすいように、level-00 とクラスを付与して切り分け

 

Amazonライクメガメニュー

  • こちらも同様に、level-00 とクラスを付与して階層を管理
  • メニュー部の level-02 はwidth未指定、コンテンツ部の level-03 はwidthを指定
  • hide() メソッドは、overflow: hidden; をインラインCSSで追加するため、絶対配置をネストすると、二階層以下は非表示になる。
    解決策として、level-01 をスライドさせる際に、最下層の level-02 に overflow: visible; を追加して、無理やり表示させている。

 

カスタマイズ

メニュー部分を画像にしたい
時間と労力の無駄でしかないので、画像はやめるよう先方を説得しよう。
時代は変わった。

 

Web制作の現場で使うjQueryデザイン入門[改訂新版] (Web Professional Books)
西畑一馬
KADOKAWA/アスキー・メディアワークス
売り上げランキング: 45,345

コメントを投稿する

※メールアドレスは私にだけ届き、サイトには表示されません。
※「送信する」ボタンは一度だけクリックしてお待ちください。