あまやどり開発雑記

システムエンジニア裏薄荷が”あまやどり”という夢をつづったブログです。

MENU

※新米ママとして育児系のブログ 裏薄荷の初ママ日記も運営しております。

はてなブログ無料版でスマホにメニューを表示させる方法

スマホと紙のノート、ノートパソコンが写った写真です。

 

こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっか)です。

 

今日は無料版のはてなブログスマホにメニューを表示させる方法についてお伝えいたします。

 

……というのも、私も人様のブログを参考に表示させてみようとしたのですが、検索トップの方に出てくる方法だと無料版でスマホ表示させることができず。

試行錯誤した結果、表示できるようになったので、記事として残しておこうと思った次第です。

 

※カテゴリを開発ノウハウにするのは微妙だなぁ……と思いつつ、一応htmlとかcss関係してくるし、ということでこのカテゴリに入れました。

 

目次

 

前書き

完成イメージ

 

完成イメージはこんな感じです。

スマホ表示されたはてなブログの記事上部に、MENUと表示されています。

 

MENUをクリックすると開きます。

MENUだけ表示されていた箇所に、TOPやブログの記事カテゴリが表示されています。

 

 

公式テーマのテンプレ利用

 

前提として、ブログのデザインとして公式テーマのテンプレを利用します。

はてなブログの管理画面 > デザイン から表示されるこれです。

はてなブログデザイン設定画面で公式テーマのテンプレートが表示されています。

 

オリジナルのデザイン使いたい、という方は同じ方法で適用されるか不明ですので、ご了承ください。

 

※有料のPro版であれば下記の記事で紹介されている方法で表示できます。

www.naturalstylelife.com

 

はてなブログ無料版でスマホにメニューを表示させる方法

最新版のjQueryを参照させる

これはいくつかの記事で紹介されている話ですが、まず最新版のjQueryを参照させましょう。

以下のサイトからjQueryの3系の最新版を参照するソースをコピペします。

developers.google.com

jQueryの"3.x snippet"と記載された欄のソースコードを選択しています。

 

コピペしたら、はてなブログの管理画面から詳細設定を開きます。

はてなブログ管理画面の設定を選択し、さらに詳細設定を開いている画面です。

 

下の方にスクロールすると「head内タグ」という欄に「headに要素を追加」という項目があります。

ここに先ほどコピペした内容をはりつけましょう。

詳細設定内のhead内タグという欄に"headに要素を追加"と表示されているので、そちらに先ほどのjQueryをコピペしています。

 

レスポンシブ対応のテンプレを選択する

前書きしたように、デザイン設定で公式テーマを利用します。

その際に、レスポンシブ対応(*1)のテーマを選択します。

まず選択したいテーマがあったら、テーマ名横のiマークからテーマの情報を参照します。

iマークを選択している画面です。

 

下の方にスクロールするとテーマの説明が表示されます。

テーマの説明に、「レスポンシブデザインに対応しています」と記載されていればOKです。

 

テーマの説明欄に"レスポンシブデザインに対応しています”と記載があります。


 *1. レスポンシブ対応とは、PCやタブレットスマホとユーザーが操作する画面の大きさが異なっても、Webサイトの表示が画面の大きさに応じて綺麗に表示されるように対応していることです。

 

 ヘッダにメニュー用のHTMLを追記する

 

デザインの設定画面からヘッダにメニュー用のHTMLを追記します。

下記のデザイン設定画面内、ヘッダのタイトル下、という欄になります。

デザイン設定画面の工具マークから、ヘッダを選択し、タイトル下という欄を選択しています。

 

追記するHTMLは下記の内容です。

ご自身のブログメニューでリンクをはりたい内容にあわせて、修正してください。

 

はてなブログデザイン設定画面ヘッダのタイトル下(HTML)
    <span class="menu-toggle"><i class="blogicon-reorder lg"></i>MENU</span>
<ul id='menu'>
    <div class="menu-inner">
        <!-- href内のURLとカテゴリ名は適宜修正してください -->
        <li><a href='https://YourBlogURL.hatenablog.com'>TOP</a></li>
        <li><a href='https://YourBlogURL.hatenablog.com/archive/category/category1'>カテゴリ1</a></li>
        <li><a href='https://YourBlogURL.hatenablog.com/archive/category/category2'>カテゴリ2</a></li>
        <li><a href='https://YourBlogURL.hatenablog.com/archive/category/category3'>カテゴリ3</a></li>
    </div>
</ul>
<!-- 3.X.Xの部分は先にコピペしたjQueryのバージョンを入力してください -->
<script type="text/javascript" src="http://code.jquery.com/jquery-3.X.X.min.js"></script>
<script>
    $(function(){
        $(".menu-toggle").on("click", function() {
            $(this).next().slideToggle();
        });
    });
    $(window).resize(function(){
        var win = $(window).width();
        var p = 768;
        if(win > p){
            $("#menu").show();
        } else {
        $("#menu").hide();
        }
    });
</script>

 

CSSを設定する

 

同じくデザイン設定用画面からメニュー用のCSSを設定します。

下記のデザイン設定画面内、デザインCSS、という欄になります。

 

はてなのデザイン設定画面内の"デザインCSS"という項目を選択しています。

 

追記するCSSは以下の内容です。

背景色や文字色はご自身で選んだデザインに合わせて適宜修正してください。

※カラーコードは以下をご参照ください。

www.colordic.org

 

CSSにはデフォルトで選択したテーマについての記述があるので、

デフォルトの内容は消さずに追記しましょう。 

 

はてなブログデザイン設定画面デザインCSS(css)
    /* デフォルトで記載されている内容に追記する */
#menu {
position: relative;
width: 100%;
padding-left: 0px;
height: 40px;
background: #ff99a8;/*グローバルメニュー背景色*/
}
.menu-inner{
width: 968px;
margin: 0 auto;
height: 40px;
}
#menu li {
list-style-type: none;
float: left;
height: 40px;
text-align: left;
}
#menu li a {
padding-left: 15px;
padding-right: 15px;
display: block;
color: #ffffff;/*グローバルメニュー文字色*/
font-size: 80%;
font-weight: bold;
line-height: 40px;
}
#menu li:hover a {
color: #00DFFC;
background: #ffffff;
transition: all .5s;
}
.menu-toggle{
display: none;

}
/*パソコン1カラム*/
@media screen and (max-width:968px){
.menu-inner{
width: 768px;
}
}
/*タブレット*/
@media screen and (max-width:768px){
#top-editarea{
height: initial;
background: #ff99a8;/*MENU背景色*/
text-align: right;/*MENUの文字の位置*/
width: 100%;
}
.menu-toggle{
color: #ffffff;/*MENUの文字色*/
display: inline-block;
padding: 5px;
margin: 3px;
}
#menu {
width: 100%;
display: none;
height: initial;
padding: 0;
margin: 0;
}
.menu-inner{
width: 100%;
height: initial;
position: static;
margin: 0;
}
#menu li{
float: none;
height: 35px;
width: 100%;
list-style-type: none;
background: #ff99a8;/*リスト文字の背景色*/
margin: 0 auto;
text-align: right;/*リストの文字の位置*/
}
#menu li a {
height: initial;
color: #ffffff;/*リスト文字色*/
display: block;
}
#menu li:hover a{
color: initial;
background: initial;
}
}

 

レスポンシブデザインモードに切り替える

 

デザイン設定画面のスマートフォンマークを選択し、一番下部にある詳細設定を開きます。

するとレスポンシブデザインというチェックボックスがありますので、それを選択します。

 

デザイン設定画面スマホマークの詳細設定欄内にあるレスポンシブデザインモードを選択しています。

 

 

以上で設定は完了です。

 

参考にした記事

説明の流れ上、ソースコード等特に注釈なく引用しましたが、基本的には下記のサイトから引用しています。 

 

グローバルメニューの作成基本については下記の記事を参照させていただきました。

redo5151.hatenablog.com

 

最新版のjQueryを適用しましょう、という話は大元は多分こちらの記事です。

kurokinomizuiwa.hatenablog.com

 

またスマホでの表示方法を模索した際にはこちらを参照しました。

ただこちらに記載されている方法は、有料のPro版じゃないとできない方法です。

www.naturalstylelife.com

 

 

以上です。参考になりましたでしょうか?

 

-----------------------------------

素材取得元