[楽天RMS]スマホページにオリジナルメニューを設置する方法
楽天スマホページでよく見かける各店舗オリジナルのヘッダーメニュー。今回はそのヘッダーメニューをバグコードを使用して設置方法を説明したいと思います。
ただのヘッダーメニューではなく、スクロールしたら表示するやつです。
サンプルタグ、参考サイトと共に紹介します!
ぜひ参考にしてみてください。
どんなものかイメージがわかない人のためにを楽天サイトではないですが、完成イメージを作成したのでこちらをご確認ください。
設置方法
設置する箇所はRMS内の以下の場所になります。
デザイン設定メニュー(スマートフォン) > ■スマートフォン用商品ページ – 商品ページ設定 > 商品ページ共通説明文
設置タグ
続いて設置するタグになります。
<iframe src="●●●" id="★★★" scrolling="no" frameborder="0" =""=""></iframe =""> <script src="▲▲▲" type="text/javascript" charset="UTF-8" =""=""></script >
「●」部分はiframeで読み込むURLを、「★」部分には任意のIDを、「▲」部分はjsのURLになります。
実際のURLはこんな感じになります。
●:https://www.rakuten.ne.jp/gold/店舗ID/●●●.html
▲:https://www.rakuten.ne.jp/gold/店舗ID/▲▲▲.js
完成イメージタグ
今回完成イメージとして使ったコードを独自でカスタマイズしてもらい、楽天GOLDにアップすれば使えますので、ぜひご参考にどうぞ。
HTML
<div id="wrapper"> <div id="header" class="clearfix"> <a href="" id="logo">LOGO</a> <a href=""><img src="http://maerc.me/image/cart.png" class="header_icon_l" alt="買い物かご" title="買い物かご"></a> <a href=""><img src="http://maerc.me/image/search.png" class="header_icon" alt="商品検索" title="商品検索"></a> </div> <ul id="navi" class="clearfix"> <li><a href="">テキスト</a></li> <li><a href="">テキスト</a></li> <li><a href="">テキスト</a></li> <li><a href="">テキスト</a></li> </ul> </div>
CSS
* { box-sizing: border-box; } .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { display: inline-table; } html, body { width: 100%; padding: 0; margin: 0; background-color: transparent; font-family: YakuHanJP, "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", メイリオ, Meiryo, sans-serif; } #wrapper { display: block; width: 100%; height: auto; padding: 0; margin: 0; box-sizing: border-box; background-color: #000000; opacity: 0.8; } #header { display: block; width: 100%; height: auto; padding: 10px; margin: 0; background-color: transparent; } #logo { display: block; width: 50%; float: left; margin: 0; color: #ffffff; text-decoration: none; font-weight: bold; font-size: 18px } .header_icon { display: block; width: 18px; float: right; margin: 5px 0 0 10px; } .header_icon_l { display: block; width: 22px; float: right; margin: 5px 0 0 8px; } #navi { display: block; width: 100%; height: auto; box-sizing: border-box; padding: 0; margin: 0; list-style-type: none; background-color: transparent; -webkit-box-shadow: 0 2px 3px rgba(0,0,0,0.1); -moz-box-shadow: 0 2px 3px rgba(0,0,0,0.1); box-shadow: 0 2px 3px rgba(0,0,0,0.1); } #navi li { display: block; width: 25%; height: auto; text-align: center; border-right: #ffffff 1px solid; border-bottom: #ffffff 1px solid; border-top: #ffffff 1px solid; float: left; background-color: transparent; } #navi li:last-child { border-right: none; } #navi li a { display: block; width: 100%; height: 100%; font-size: 12px; color: #ffffff; text-decoration: none; padding: 7px 0 8px 0; background-color: transparent; } #navi li a:link { color: #ffffff; text-decoration: none; } #navi li a:visited { color: #ffffff; text-decoration: none; } #navi li a:hover { color: #ffffff; text-decoration: none; } #navi li a:active { color: #ffffff; text-decoration: none; }
JS
(function(){ //backscrollMenu function backscrollMenu(){ var styleElement = document.createElement('style'); var cssStyle = '#★★★ { position: fixed; z-index: 9999; top: -110px; left: 0; width: 100%; transform: translate3d(0, 0, 0); }'; if((/crios/.test(window.navigator.userAgent.toLowerCase())) || (/Android/.test(window.navigator.userAgent))){ var cssElement = cssStyle + '.transition { transition: all 0.04s; }'; }else { var cssElement = cssStyle + '.transition { transition: all 0.2s; } #★★★ { -webkit-backface-visibility: hidden; backface-visibility: hidden; overflow: hidden; visibility: visible; }'; } styleElement.innerHTML = cssElement; var divElement = document.createElement('div'); var miscElement = '<div id="misc" style="position: fixed; color: rgba(255, 255, 255, 0.01);">-</div>'; divElement.innerHTML = miscElement; var bodyElement = document.getElementsByTagName('body')[0]; bodyElement.appendChild(styleElement); bodyElement.appendChild(divElement); var menuWrap = document.getElementById("★★★"); var menuHeight = menuWrap.clientHeight; var before = 0; window.addEventListener("scroll", function(){ var after = window.pageYOffset; if(after >= menuHeight) { menuWrap.classList.add("transition"); } else { menuWrap.classList.remove("transition"); } if(after > 200) { if(after > before) { menuWrap.style.top = "-" + menuHeight + "px"; } else { menuWrap.style.top = "0"; } } else { menuWrap.style.top = "-" + menuHeight + "px"; } before = after; }); var menuPopup = document.getElementById('menuPopUp'); menuPopup.setAttribute("style","transition: transform 0.35s ease-in-out; z-index: 9999999;"); } if(document.getElementById('★★★')){ backscrollMenu(); } })();
★★★部分にはiframeで設定した[id=”★★★”]と共有のidを設定します。
参考サイト
今回参考にさせてもらった店舗さんになります。