Growth Hackで得た知見やWeb制作の備忘録をまとめています。

This is standard

Vue.js

Vue.jsでハンバーガーメニューを作成

更新日:

jQueryからVue.jsの移行が始まっているので、勉強を兼ねてVue.jsでハンバーガーメニューを作成しました。

出来上がったコードをみると、確かにVue.jsの方が少ないコードで実装できることを実感しました。jQueryもいいけど、Vue.jsも面白い。

See the Pen Untitled by This is standard (@koutafunahashi) on CodePen.

CodePenに実装したものをアップしています。
ポイントはメニューをクリックした後、ハンバーガーメニューが閉じる事。
jQueryだとこの処理も書かなければならなかったのですが、Vue.jsは数行のコードで実装することができたのが、ちょっと驚き。

var app = new Vue({
  el: '#nav',
  data: {
    active: false
  }
});
<nav id="nav">
    <div class="hamburger" v-on:click='active=!active'>
        <span class="line line01" v-bind:class="{'v-line01':active}"></span>
        <span class="line line02" v-bind:class="{'v-line02':active}"></span>
        <span class="line line03" v-bind:class="{'v-line03':active}"></span>
    </div>
<!--/ハンバーガーボタンここまで-->
    <div class="menu" v-show="active">
        <ul>
            <li><a href="#concept" v-on:click='active=!active'>CONCEPT</a></li>
            <li><a href="#product" v-on:click='active=!active'>PRODUCT</a></li>
            <li><a href="#company" v-on:click='active=!active'>COMPANY</a></li>
            <li><a href="#news" v-on:click='active=!active'>NEWS</a></li>
        </ul>
    </div>
</nav>
<!--/メニューここまで-->

Vue.jsのコードはこのくらいです。
activeをfalseにしておくことで、HTMLのmenuブロックが表示になります。
v-showの箇所です。displayを切り替える指定になります。

v-on:click='active=!active'を記述することで、jQueryのtoggle()と同じ働きが実装できます。これが驚きでした。簡単!
これをメニューのaタグに記述することで、クリックするとメニューを非表示に実装することができます。

もっと早く勉強しておけばよかった。。。w
これからもjQuery→Vue.jsを勉強していきたいと思います。

-Vue.js

Copyright© This is standard , 2024 All Rights Reserved Powered by STINGER.