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, ゼヒトモのホームページ作成・制作サービス, 仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス
2025/01/31
JQuery
2025/01/01
神社
御朱印
相模原
2024/10/27
ブラウザ
カスタム投稿
Wordpress
2024/08/20
神社
御朱印
2024/07/06
神社
御朱印