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
神社
御朱印
