2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

新時代はAlpine.jsだ~世界中全部(Alpine.jsに)変えてしまえば~↑↑Advent Calendar 2022

Day 13

×ボタンでしか閉じれないモーダルはウザいなぁ~ ← Alpine.jsなら10秒で解決ってマ?

Last updated at Posted at 2022-12-12

×ボタンでしか閉じれないモーダルはウザい

See the Pen Untitled by gorimatyan (@gorimatyan) on CodePen.

ウザすんぎ。

ウザくないモーダルがコチラ

背景クリックで閉じることができます。

See the Pen alpine.js modal-after by gorimatyan (@gorimatyan) on CodePen.

ストレスなし子。

コードの違い

before

<!-- チワワ解説ボタン -->
<div x-data="{open: false}">
  <div>
    <button x-on:click="open = true" class="border p-3 bg-gray-200 rounded-xl border-black shadow-lg m-4">チワワの解説を読む</button>
  </div>

<!-- モーダル -->
  <div x-cloak 
       x-show="open" 
       class="fixed top-0 left-0 w-full h-full bg-black bg-opacity-40 flex justify-center items-center border"
>
    <div class="max-w-xs w-full h-auto flex flex-col bg-white rounded-xl px-4 py-2">
       <header class="flex justify-between items-end pb-2 mb-2 border-b border-black">
         <p>こんにチワワ</p>
         <div x-on:click="open = false" class="text-2xl cursor-pointer">×</div>
       </header>
      <div class="py-2 px-1">
        チワワ(スペイン語: ChihuahuaまたはChihuahueño)は、世界的に公認された犬の中でも最も小さな犬種。<br>
        メキシコのチワワ地域が原産地。チワワは、北アメリカにおいては最も古い犬種であり、
        テチチ (Techichi) として知られるアステカ文明の王族の時代から飼われ儀式の生贄とされていた。
      </div>
    </div>
  </div>
</div>

after

モーダル本体にx-on:click.away="open = false"を足すだけ。
ワシら、足すだけやから。

x-on:click.away は指定した要素以外をクリックした時に発火します。

<div x-data="{open: false}">
  <div>
    <button x-on:click="open = true" class="border p-3 bg-gray-200 rounded-xl border-black shadow-lg m-4">チワワの解説を読む</button>
  </div>

  <div x-cloak 
       x-show="open" 
       class="fixed top-0 left-0 w-full h-full bg-black bg-opacity-40 flex justify-center items-center border">
+    <div x-on:click.away="open = false"
         class="max-w-xs w-full h-auto flex flex-col bg-white rounded-xl px-4 py-2">
       <header class="flex justify-between items-end pb-2 mb-2 border-b border-black">
         <p>こんにチワワ</p>
         <div x-on:click="open = false" class="text-2xl cursor-pointer">×</div>
       </header>
      <div class="py-2 px-1">
        チワワ(スペイン語: ChihuahuaまたはChihuahueño)は、世界的に公認された犬の中でも最も小さな犬種。<br>メキシコのチワワ地域が原産地。チワワは、北アメリカにおいては最も古い犬種であり、テチチ (Techichi) として知られるアステカ文明の王族の時代から飼われ儀式の生贄とされていた。
      </div>
    </div>
  </div>
</div>

まとめ

(既にモーダルを作っていれば)ガチで10秒で実装できる。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?