>  > V-VISION ヴェルファイア(20系) Zグレード フロントバンパースポイラー(ネット・カナード付) FRP製/ブイビジョン エアロ バンパー スポイラー
CONSTANCY(コンスタンシー) サマータイヤ 夏用 4本セット 225/35R20 CONSTANCY LY566 225/35R20 90W XL ●タイヤ4本セット● 〇

恵比寿のWebサイト制作・Webデザインチームのブログ。Webデザインやコーディング、SEO対策まで幅広く手掛けています。

恵比寿のデザイン制作チームのブログです。

  1. HOME
  2. >
  3. JavaScript

    Webデザイン、
    Web制作、
    SEO対策の
    ご依頼・ご相談

    Contact

    V-VISION ヴェルファイア(20系) Zグレード フロントバンパースポイラー(ネット・カナード付) FRP製/ブイビジョン エアロ バンパー スポイラー

    投稿日:2018-10-30 更新日:




    今回は、JavaScriptを使ってモーダル(ポップアップ画像)を表示させる方法を紹介します。

    jQueryは使わずに、生のJavaScriptだけでやります。2つのパターンを想定してます。

    V-VISION ヴェルファイア(20系) Zグレード プロジェクトミュー フロントバンパースポイラー(ネット・カナード付) ブレーキパッド FRP製/ブイビジョン エアロ バンパー スポイラー

    画像や広告などが表示されて、クリックや閉じるなどの操作をしないとページが閲覧できないような表現です。

    実際にデモを見れば分かると思います。

     

    1.ページが表示された時に表示されるパターン

    広告とかで使われるパターンです。ウザいので結構嫌われてます。

    DEMO

     

    2.ボタンをクリックしたら表示されるパターン

    画像の拡大表示などで使われるパターンですね セレナ用 フイニツシヤーリアホイールハウスRHセレナ 84950-CX101 日産純正部品。

    DEMO

    それぞれの実装方法を紹介します HKS エッチ・ケー・エス SUPER FIRE RACING M40X 3本セット セルボモード 4VALVE CN22S/CP22S F6A 90/10~98/10 Xタイプ NGK8番相当 プラグ。

    ページが表示された時に表示されるモーダル(ポップアップ)

    まずはこちらのパターンです 。

    DEMO

    あらかじめCSSの前にFontAwesome アイコンを呼び出してください。

    <link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet">

    FontAwesomeアイコンって何?という人は、こちらの記事を読んでください。
    FontAwesomeアイコンの使用方法

    FRP製/ブイビジョン エアロ フロントバンパースポイラー(ネット・カナード付) フロントバンパースポイラー(ネット・カナード付) スポイラー Zグレード バンパー V-VISION Zグレード ヴェルファイア(20系)

    <div>
     <div>
     <div><i></i></div>
     <a href="#"><img src="./img/popup.jpg" alt="ポップアップ画像"></a>
     </div>
     <div></div>
    </div>

    CSS

    .popup {
     position: fixed;
     left: 0;
     top: 0;
     width: 100%;
     height: 100%;
     z-index: 9999;
     opacity: 0;
     visibility: hidden;
     transition: .6s;
    }
    .popup.is-show {
     opacity: 1;
     visibility: visible;
    }
    .popup-inner {
     position: absolute;
     left: 50%;
     top: 50%;
     transform: translate(-50%,-50%);
     width: 80%;
     max-width: 600px;
     padding: 50px;
     background-color: #fff;
     z-index: 2;
    }
    .popup-inner img {
     width: 100%;
    }
    .close-btn {
     position: absolute;
     right: 0;
     top: 0;
     width: 50px;
     height: 50px;
     line-height: 50px;
     text-align: center;
     cursor: pointer;
    }
    .close-btn i {
     font-size: 20px;
     color: #333;
    }
    .black-background {
     position: absolute;
     left: 0;
     top: 0;
     width: 100%;
     height: 100%;
     background-color: rgba(0,0,0,.8);
     z-index: 1;
     cursor: pointer;
    }

    .popupというクラスは非表示(opacity:0; visibility:hidden)にして、.is-showクラスが付いたら表示(opacity:1; visibility:visible)されるようにします。

    閉じるボタン(.close-btn)は、50pxの高さ・幅にして、クリックしやすい大きさにしておきます。

    これをしないと、クリック・タッチがしづらいですので。

    JavaScript

    window.onload = function() {
     var popup = document.getElementById('js-popup');
     if(!popup) return;
     popup.classList.add('is-show');
     var blackBg = document.getElementById('js-black-bg');
     var closeBtn = document.getElementById('js-close-btn');
     closePopUp(blackBg);
     closePopUp(closeBtn);
     function closePopUp(elem) {
     if(!elem) return;
     elem.addEventListener('click', function() {
     popup.classList.remove('is-show');
     })
     }
    }

    window.onload = function() { … } は、ページが読み込まれたらコードを実行するための記述です。

    モーダルの画像が読み込まれてから表示させる方が良い感じですからね。

    最初に.is-showというクラスを付与して、閉じるボタンか黒い背景がクリックされたらモーダルを非表示にするようにしています。

    黒背景クリックで閉じれるようにした方が、ユーザーに優しいでしょう 【2本以上送料無料】2本セット! ファルケン アゼニス FK510 245/45R17 99Y XL 取寄商品/代引不可 FALKEN AZENIS FK510。

    .classListは使用頻度の高いメソッドなので、覚えておきましょう。

    ボタンをクリックしたら表示されるモーダル(ポップアップ)

    DEMO

    あらかじめCSSの前にFontAwesome アイコンを呼び出してください。

    <link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet">

    FontAwesomeアイコンって何?という人は、こちらの記事を読んでください。
    FontAwesomeアイコンの使用方法

    FRP製/ブイビジョン エアロ フロントバンパースポイラー(ネット・カナード付) フロントバンパースポイラー(ネット・カナード付) スポイラー Zグレード バンパー V-VISION Zグレード ヴェルファイア(20系)

    <div>
     <div>
     <div><i></i></div>
     <a href="#"><img src="./img/popup.jpg" alt="ポップアップ画像"></a>
     </div>
     <div></div>
    </div>
    <button>Show Popup</button>

    先ほどのコードとほとんど同じで、表示を切り替えるボタンがあるという違いだけです。

    CSS

    .popup {
     position: fixed;
     left: 0;
     top: 0;
     width: 100%;
     height: 100%;
     z-index: 9999;
     opacity: 0;
     visibility: hidden;
     transition: .6s;
    }
    .popup.is-show {
     opacity: 1;
     visibility: visible;
    }
    .popup-inner {
     position: absolute;
     left: 50%;
     top: 50%;
     transform: translate(-50%,-50%);
     width: 80%;
     max-width: 600px;
     padding: 50px;
     background-color: #fff;
     z-index: 2;
    }
    .popup-inner img {
     width: 100%;
    }
    .close-btn {
     position: absolute;
     right: 0;
     top: 0;
     width: 50px;
     height: 50px;
     line-height: 50px;
     text-align: center;
     cursor: pointer;
    }
    .close-btn i {
     font-size: 20px;
     color: #333;
    }
    .black-background {
     position: absolute;
     left: 0;
     top: 0;
     width: 100%;
     height: 100%;
     background-color: rgba(0,0,0,.8);
     z-index: 1;
     cursor: pointer;
    }

    こちらはパターン1と同じなので、説明は省きます。

    JavaScript

    function popupImage() {
     var popup = document.getElementById('js-popup');
     if(!popup) return;
     var blackBg = document.getElementById('js-black-bg');
     var blackBg = document.getElementById('js-black-bg');
     var closeBtn = document.getElementById('js-close-btn');
     var showBtn = document.getElementById('js-show-popup');
     closePopUp(blackBg);
     closePopUp(closeBtn);
     closePopUp(showBtn);
     function closePopUp(elem) {
     if(!elem) return;
     elem.addEventListener('click', function() {
     popup.classList.toggle('is-show');
     });
     }
    }
    popupImage();

    割とシンプルに実装できます KENDA ICETEC NEO KR36 2018年製 スタッドレス スタッドレスタイヤ 165/70R14 WEDS ウェッズ RIZLEY ライツレー XS ホイールセット 4本 14インチ 14 X 4.5 +45 4穴 100。

    コード全体を関数にしているのは、変数が他のコードに影響が出ないようにするためです トヨタ WiLLVS ZZE128 01/04~04/04 DIXCEL(ディクセル) ブレーキローター SDタイプ リア用 左右セット ブレーキディスク ディスクローター 3150913S WiLLVS ディクセル ローター。

    button要素ではなく画像(img要素)にして、拡大画像が表示されるような使い方もできますね。

    まとめ

    モーダルは広告や画像表示によく使われるので、サクっと作れるようにしておきましょう。

    他にもこんな記事があります。

    【JavaScript】スクロールに応じて文字の色を変える方法

    jQueryでスクロールするアニメーション

    jQueryを使わずにJavaScriptだけでDOM操作

{yahoojp}jpprem01-zenjp40-wl-zd-62143