院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

vue.jsにてモーダルの実装

cssでのハンガーバーメニューと考え方はほぼ同じだが、実装がだいぶ楽。
ついでにbulma(cssフレームワーク)も使えばレイアウトも簡単。
というかbulmaのモーダルのドキュメントに@clickイベントいくつか付けるだけでできる。
(vueの方でmodalプロパティも必要)

<button @click="modal=true" class="button">モーダルを開く</button>
<div class="modal" v-show="modal">
  <div class="modal-background" @click="modal=false"></div>
  <div class="modal-content">
    <!-- 中身ーvue.jsのslot 使うと汎用性高し -->
  </div>
  <button class="modal-close is-large" aria-label="close" @click="modal=false"></button>
</div>

1点注意
modalクラス付けるとdisplay:noneがあるせいでうまく動かないからそれを消す必要がある。
.modal{display:block;}