Sae/note

【もりけん塾】Modal Window

目次

    もりけん塾で取り組んだ課題のアウトプットです。
    今回はモーダルウィンドウをJavaScriptで実装しました。

    レビュー前の完成形

    <p class="codepen" data-height="300" data-default-tab="html,result" data-slug-hash="WNjzvoZ" data-user="Sae_codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;"><span>See the Pen <a href="https://codepen.io/Sae_codepen/pen/WNjzvoZ"></a>by Sae (<a href="https://codepen.io/Sae_codepen">@Sae_codepen</a>) on <a href="https://codepen.io">CodePen</a>.</span></p> <script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script>

    レビュー

    今回ももりけん先生にレビューを頂きました。
    ありがとうございます。

    レビュー①上下中央配置の方がいいのではないか?

    私が実装したものはTOPから10px下の位置にポップアップが出る様スタイルを当てていました。
    (なんとなく...見やすいと思ったからです...)

    ですが、色々なサイトやサンプルを見ると、基本的に上下中央配置が多かったです。

    マテリアルデザインには以下の様にあります。

    ダイアログとは、アプリのコンテンツの前に現れ、重要な情報を提供したり、判断を求めたりするモーダルウィンドウの一種です。ダイアログは、表示されるとアプリのすべての機能を無効にし、確認されるか、解除されるか、必要な行動が取られるまで画面に表示されます。

    https://material.io/components/dialogs

    ダイアログは、その内容が確実に扱われるようにユーザーの注意を引きつけます。

    https://material.io/components/dialogs

    ユーザーの注意を惹きつけるためには、やはり上下中央配置がいいのでは、と思い直しました。

    https://material.io/components/dialogs

    レビュー②先生の書いたコードから学んだこと

    アロー関数

    アロー関数ではfunctionキーワードは書かず、代わりにアロー(=>)で引数と関数本体を繋ぎます。

    (引数,.....) => {....関数の本体....}
    
    //例文
    let getTriangle = (base,height) => {
     return base * height / 2;
    };
    

    例文をアロー関数を使用して書き直します↓↓

    ▪️ 関数本体が1文である場合は{ }は省略することが可能
    ▪️ 文の戻り値がそのまま戻り値となる為returnは省略可能
    ▪️ 引数が1つの場合は、引数をくくる( )も省略が可能。引数がない場合は( )の省略は不可

    let getTriangle = (base,height) => base * height / 2;
    

    ▪️ オブジェクトを返す場合は( )が必要

    hoge => ({obj: "a;"})
    

    https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions

    addEventListenerとonclickの違い

    主な違いは、イベントリスナーのメソッドを使うと、複数のイベントハンドラーを追加 (または削除) できることです。

    https://developer.mozilla.org/ja/docs/Web/Events/Event_handlers

    https://developer.mozilla.org/ja/docs/Web/Events/Event_handlers

    完成後

    <p class="codepen" data-height="300" data-default-tab="html,result" data-slug-hash="MWmVead" data-user="Sae_codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;"><span>See the Pen <a href="https://codepen.io/Sae_codepen/pen/MWmVead"></a>by Sae (<a href="https://codepen.io/Sae_codepen">@Sae_codepen</a>) on <a href="https://codepen.io">CodePen</a>.</span></p> <script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script>

    だいぶスッキリしました!


    次回からJS課題をメインに進めていきます。

    先生、今回もレビューをありがとうございました!


    現在、もりけん塾でJavaScriptを中心に学習をしています!

    もりけん先生のTwitter:https://twitter.com/terrace_tech

    https://kenjimorita.jp/