2016/03/10
ECCUBE2.11~ スマートフォン
ECCUBE2.11を使っているサイトのスマートフォンにプルダウンメニューを実装するカスタマイズがあり、
jQueryが使えず苦労しましたので備忘録として残します。
正直なところ原因は不明ですが、ECCUBE2.12や2.13で実装していたプルダウンメニューが
2.11だと使えず、jQueryのバージョンをアップすると画面が真っ白になってしまったため、
他の実装方法を探していたところ、cssでのプルダウンを見つけました。
参考サイト
CSSで作ったドロップダウンメニューのドロップの動きいろいろ
HTML
<ul id="normal" class="dropmenu"> <li><a href="#">menu</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="#">menu</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="#">menu</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="#">menu</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="#">menu</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> </ul>
CSS 共通部分
.dropmenu{ *zoom: 1; list-style-type: none; width: 960px; margin: 5px auto 30px; padding: 0; } .dropmenu:before, .dropmenu:after{ content: ""; display: table; } .dropmenu:after{ clear: both; } .dropmenu li{ position: relative; width: 20%; float: left; margin: 0; padding: 0; text-align: center; } .dropmenu li a{ display: block; margin: 0; padding: 15px 0 11px; background: #8a9b0f; color: #fff; font-size: 14px; line-height: 1; text-decoration: none; } .dropmenu li ul{ list-style: none; position: absolute; z-index: 9999; top: 100%; left: 0; margin: 0; padding: 0; } .dropmenu li ul li{ width: 100%; } .dropmenu li ul li a{ padding: 13px 15px; border-top: 1px solid #7c8c0e; background: #6e7c0c; text-align: left; } .dropmenu li:hover > a{ background: #6e7c0c; } .dropmenu li a:hover{ background: #616d0b; }
CSSアニメーション無
#normal li ul{ display: none; } #normal li:hover ul{ display: block; }
以下のcssはid="normal"のnormalを変更してください。
CSS広がるように
子メニュー1つ1つが広がりながら現れます。
#dropmenu li ul li{ overflow: hidden; height: 0; transition: .2s; } #dropmenu li:hover ul li{ overflow: visible; height: 38px; }
CSSフェードイン
マウスを乗せるとふんわりと子メニューが現れます。
#fade-in li ul{ visibility: hidden; opacity: 0; transition: 0s; } #fade-in li:hover ul{ visibility: visible; opacity: 1; } #fade-in li ul li a{ visibility: hidden; opacity: 0; transition: .5s; } #fade-in li:hover ul li a{ visibility: visible; opacity: 1; }
CSSフェードインでおりてくる
先ほどと似ていますが、こちらは降りてきます。
#fade-in2 li ul{ opacity: 0; top: 50%; visibility: hidden; transition: .5s; } #fade-in2 li:hover ul{ top: 100%; visibility: visible; opacity: 1; }
CSS左から右へ
子メニューが左側から表示されます。
#left-to-right ul{ overflow: hidden; width: 0; transition: .5s; } #left-to-right li:hover ul{ width: 100%; } #left-to-right li:hover ul li a{ white-space: nowrap; }
参考サイトはグローバルメニューを想定していますが、
今回はヘッダーのプルダウンメニューに使ったので、CSSを調整して実装できました。
問題点としては、スマホでタップすると開きますが、タップで閉じません。
メニューボタン以外の箇所をタップするか、メニューを選択すると閉じます。
その点だけを考慮すれば、jQueryが古くてプルダウンのjsが使えない場合など、
有効活用できるかと思います。
ゼヒトモ内でのプロフィール: ROCKSTREAM, ゼヒトモのホームページ作成・制作サービス, 仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス
2024/08/20
神社
御朱印
2024/07/06
神社
御朱印
2024/07/06
神社
御朱印
2024/02/09
神社
2024/02/09
神社