コピペでOK!楽天市場の検索窓デザイン

コピペでOK!楽天市場の検索窓デザイン

楽天GOLDページにオリジナルの検索窓を設置したい。

検索窓を自由にカスタマイズしたい。

という悩みを解決します。

デフォルトの検索窓は必要最低限の装飾しかしておらず、正直使いづらいです。

また、検索窓をデザインしてカスタマイズするにはHTML、CSS、JavaScriptの知識が必要となります。

「コピペでかんたんに実装したい!」という方はこれから紹介する検索窓をお試しください。

本記事で解説する検索窓はJavaScriptを使用しているため楽天GOLDの契約が必須です。

スポンサーリンク

検索窓の実装イメージ

検索窓の実装イメージ

それでは、実装イメージと同じ検索窓の作り方を解説していきます。

本記事で解説する検索窓のポイント

本記事で実装する検索窓のポイントは下の2つ。

  1. 検索ワードのクリアボタン
  2. スマホ、パソコン兼用

検索ワードのクリアボタン

検索したい単語を入力したあと、思い直して別の単語で検索したことはありませんか?

BackSpaceなどの削除キーを押して単語を削除するのは手間がかかります。スマホならなおさらです。

そこで、1クリックで検索ワードを削除できるクリアボタンを実装しました。

地味で細かな機能ですが、お客様はわずらわしい操作から開放され、離脱率の低下につながります。

スマホ、パソコン兼用

スマホ、パソコンの両ページで使用できるようにCSSを設定しています。

お客様が使用するデバイスによって、レスポンシブに検索窓が変形します。

後述するデモにて実際の動作を確認できます。

実装:クリアボタンつきの検索窓

実装に必要なのは下の3つ。

  1. HTML
  2. CSS
  3. JavaScript

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<body onload="Form_Load()">
<div id="search_container">
<form accept-charset="euc-jp" method="get" action="https://esearch.rakuten.co.jp/rms/sd/esearch/vc" target="_top" name="searchForm">
<input value="店舗ID" type="hidden" name="sid">
<div>
<i class="fa fa-search" aria-hidden="true"></i>
<input placeholder="商品を探す" type="text" name="sitem" value="" onkeydown="ClearButton_KeyDown()">
<i class="fa fa-times-circle clearButton" aria-hidden="true" id="clear_button" onclick="ClearButton_Click()"></i>
<input value="検索" type="submit">
</div>
</form>
</div>
</body>

<input name="sid">のvalueに自店舗の店舗ID(6桁の数字)を入力します。

リセットCSS

リセットCSSをCDNで読み込みます。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">
Font Awesome(アイコン)

虫眼鏡と×のアイコンはFont Awesomeを使用しています。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

CSS

* {
box-sizing: border-box;
-webkit-appearance: none;
}
body {
display: flex;
align-items: center;
height: 100vh;
padding: 10px;
}
#search_container {
width: 100%;
}
form {
margin: auto !important;
}
form>div {
background-color: white;
font-size: 14px;
display: -ms-flexbox;
display: flex;
-ms-flex-pack: start;
justify-content: flex-start;
-ms-flex-align: center;
align-items: center;
width: 100%;
max-width: 425px;
margin: 0 auto;
border: 1px solid #cccccc;
overflow: hidden;
border-radius: 6px;
}
form>div i {
font-size: 18px;
margin: 0 6px 0 10px;
}
form>div .clearButton {
color: #4975f7;
font-size: 18px;
padding: 6px;
margin: 0 6px 0 2px;
cursor: pointer;
visibility: hidden;
}
form>div .clearButton:hover {
color: #1850f5;
}
@media all and (-ms-high-contrast: none) {
form>div .clearButton {
display: none;
}
}
form>div input[type="text"] {
-ms-flex-positive: 999999;
flex-grow: 999999;
-ms-flex-negative: 1;
flex-shrink: 1;
-ms-flex-preferred-size: 90px;
flex-basis: 90px;
width: 60%;
height: 36px;
padding-left: 3px;
border: none;
box-shadow: none;
outline: none;
}
form>div input[type="submit"] {
color: white;
background-color: #4975f7;
letter-spacing: 1.5px;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-negative: 9999;
flex-shrink: 9999;
-ms-flex-preferred-size: 80px;
flex-basis: 80px;
height: 36px;
padding: 8px 10px 6px;
border: none;
cursor: pointer;
}
form>div input[type="submit"]:hover {
background-color: #1850f5;
}
view raw searchbox.css hosted with ❤ by GitHub

Flexboxを使って検索窓の骨組みを作成しています。

<styleタグ>に記述する、または外部CSSから読み込んで使ってください。

JavaScript

function Form_Load() {
if (this.searchForm.sitem.value.length > 0) {
target = document.getElementById("clear_button");
target.style.visibility = "visible";
}
}
function ClearButton_Click() {
this.searchForm.sitem.value = "";
this.searchForm.sitem.focus();
target = document.getElementById("clear_button");
target.style.visibility = "hidden";
}
function ClearButton_KeyDown() {
target = document.getElementById("clear_button");
target.style.visibility = "visible";
}

JavaScriptで検索ワードのクリアボタンを実装しています。

searchFormは<formタグ>のname属性、sitemは<input type=”text”>のname属性です。

JavaScriptは<scriptタグ>に記述するか、外部JSとして読み込みます。

クリアボタンが必要ない場合はJavaScriptを省略してください。

JavaScript不使用ですとRMSに直接設置することも可能です。

デモ:楽天市場の検索窓

実際の動作を確認できるデモです。

See the Pen Search box for rakuten(楽天市場の検索窓) by ざきひー (@zakihiii) on CodePen.0

テキストエリアに検索ワードを入力するとクリアボタンが表示されます。

検索窓をiframeで設置

<iframe src="https://www.rakuten.ne.jp/gold/店舗アカウント/searchbox.html" width="100%" height="38" scrolling="no" frameborder="0"></iframe>

RMS、または楽天GOLDにiframeを使って検索窓を設置します。

さあ、楽天の検索窓をカスタマイズしよう

検索ワードのクリアボタンを実装した検索窓を紹介しました。

また、CSSを変更、JavaScriptを追記することで新たな機能を付与することもできます。

店舗によって求めるデザイン、機能は違います。

本記事の検索窓を参考に、自店舗に合ったカスタマイズをしましょう。

関連【コピペでできる】Yahooショッピングの検索窓

コメント

タイトルとURLをコピーしました