>  > V-VISION ヴェルファイア(20系) Zグレード フロントバンパースポイラー(ネット・カナード付) FRP製/ブイビジョン エアロ バンパー スポイラー
アウディ A5 カブリオレ シリーズ 8FC系 フロアマット 1台分セット【プレミアム】シリーズ(9000通りのオリジナルカラーが選べる完全オーダーメイドのフロアーマット)◆AUDI A5 CABRIOLET Series 8FC◆全国送料無料 日本製

恵比寿の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.ボタンをクリックしたら表示されるパターン

    画像の拡大表示などで使われるパターンですね 【送料無料】 245/45R20 20インチ WORK ワーク ランベック LM1 8.5J 8.50-20 SAFFIRO サフィーロ SF5000(限定) サマータイヤ ホイール4本セット。

    DEMO

    それぞれの実装方法を紹介します MCG-34365 マックガード McGard 軽自動車用ロックナット M12x1.25 テーパー 主な適合:スズキ 日本正規品{MCG-34365[9980]}。

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

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

    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というクラスを付与して、閉じるボタンか黒い背景がクリックされたらモーダルを非表示にするようにしています。

    黒背景クリックで閉じれるようにした方が、ユーザーに優しいでしょう DataSystem 6000K クリスタルシャインホワイトHID2600 J10 デュアリス H19.5~ D2R。

    .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();

    割とシンプルに実装できます ★色番号塗装発送【★送料無料】 ピラー【シュピーゲル】カーボン調シート&フィルム 窓枠カーボン調シート (左右1セット) ダイハツ コペン L880K。

    コード全体を関数にしているのは、変数が他のコードに影響が出ないようにするためです ギヤ シフト レバー [一式] ■ 『図の略番 35010 のみ』 スバル純正部品 フォレスター 適合年式[平成24年08月~next]『品番』 35010FJ000 ^j27^。

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

    まとめ

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

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

    カヤバ ショック リア(左右) ■KYB Lowfer Sports トヨタ ヴェルファイア GGH25W 08/05~ (3.5X、3.5Z、3.5V、3.5Z Gエディション、3.5V Lエディション) (2GRFE(3.5L))【WSF2090 ×2】;ハイゼット S100P S100C S110P S110C 1996/01~1998/12 トラック パネルバン ダンプ NAを除く リアマフラー 純正タイプ MDH-9278 大栄テクノ 法人のみ配送;トヨタ ノア 70系ワイド 17インチ アルミホイール・タイヤセット 一台分(4本セット) LEONIS VX BKMC/GOODYEAR 215/50R17 ノア 17インチアルミホイール・タイヤセット 215/50R17 17×7.0J 53

    V-VISION ヴェルファイア(20系) Zグレード フロントバンパースポイラー(ネット・カナード付) FRP製/ブイビジョン エアロ バンパー スポイラー;【送料無料】 245/45R19 19インチ WORK ワーク デュランダル DD 5.2 8J 8.00-19 FALKEN ファルケン アゼニス FK453 サマータイヤ ホイール4本セット フジコーポレーション;[ホイール1本(単品)] CRIMSON / CLUB LINEA L566 KING LABEL (BKP) 22インチ×9.0J PCD:114.3 穴数:5 インセット:30;Weds Sport SA-72R 6.0J-15 と KENDA KAISER KR20 195/55R15 の4本セット;【アクレ / acre】スリットタイプディスクローター フロント用・左右2枚セット クリッパー/クリッパー・リオ U71(2WD) / U72(4WD) などにお勧め 品番:5F014(SLT・Front) SLT ブレーキローター

    プロジェクトμ クラブマン・シンタード フロント左右セット ブレーキパッド スプラッシュ XB32S F890 取付セット プロジェクトミュー プロミュー プロμ CLUBMAN SINTERED ブレーキパット【店頭受取対応商品】, ブリヂストン ALENZA アレンザ 001 サマータイヤ 225/60R17 BLEST EUROMAGIC Type S-07 17 X 7.5 +33 5穴 114.3, 16インチカローラ フィールダー140系 全グレードHOT STUFF シュティッヒ レグザス フォーベックス ブラッククリア 6.0Jx16Bluearth エース AE50 195/55R16, 165/55R15 DUNLOP ダンロップ WINTER MAXX 01 WM01 ウインターマックス 01 Stich LEGZAS FUHLER シュティッヒ レグザス フューラー スタッドレスタイヤホイール4本セット, リジカラ HONDA アコード CF3,CF4,CF5,CF7 2WD/4WD リア用 15インチ サマータイヤ セット【適応車種:ゼスト(JE系 NA車 2WD)】HOT STUFF プレシャス アストM1 メタリックブラック/ポリッシュ 4.5Jx15LEMANS V LM5 165/50R15

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

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

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

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

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