閲覧いただき、ありがとうございます!
現在、Udemyのレッスンで、モーダルを作っているのですが、
下記のコードでaddEventListenerが聞かず、
IDのmodalのコンテンツに classのis-showがつきません・・・。
それに、クリックしてもエラーが何も出ない(コンソールログも出ない)ので
クリックイベント自体聞いていないような気がします。
以前はうまくいったので、理由がわからずお聞きしました。
お手数ですが、教えていただけませんでしょうか><
よろしくお願い致します。
HTML
1 2 <div id="modal" class="modal"> 3 <div id="modalInner" class="modalInner"> 4 <img src="./img/img_01.jpg" alt="画像"> 5 </div> 6 <p id="modal_close" class="modal_close"> 7 <i class="fas fa-times"></i> 8 </p> 9 <div id="modal_bg" class="modal_bg"></div> 10 </div> 11 <p id="modal_open" class="modal_open">画像をみる</p> 12 13<script href="js/modal.js"></script>
JavaScript
1const modal = document.getElementById('modal'); 2const modalInner = document.getElementById('modalInner'); 3const close = document.getElementById('modal_close'); 4const bg = document.getElementById('modal_bg'); 5const show = document.getElementById('modal_open'); 6 7show.addEventListener('click', () => { 8modal.classList.add('.is-show'); 9});
#補足になります
サーバーをレンタルしていないので、アップすることができないのですが
全体のファイルのコードになります><(実際はSCSSで書いていますが、ここに載せるとややこしいので、コンパイル後のCSSを載せております)
HTML
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>modal_02</title> 7 <script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> 8 <link rel="stylesheet" href="./css/style.css"> 9 <link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet"> 10</head> 11<body> 12 13 <div id="modal" class="modal"> 14 <div id="modalInner" class="modalInner"> 15 <img src="./img/img_01.jpg" alt="画像"> 16 </div> 17 <p id="modal_close" class="modal_close"> 18 <i class="fas fa-times"></i> 19 </p> 20 <div id="modal_bg" class="modal_bg"></div> 21 </div> 22 23 <p id="modal_open" class="modal_open">画像をみる</p> 24 25 26 <script href="js/modal.js"></script> 27</body> 28</html>
CSS
1* { 2 margin: 0; 3 padding: 0; 4 -webkit-box-sizing: border-box; 5 box-sizing: border-box; 6} 7 8.modal { 9 width: 100%; 10 height: 100%; 11 position: fixed; 12 visibility: hidden; 13 opacity: 0; 14} 15 16.modal.is-show { 17 visibility: visible; 18 opacity: 1; 19} 20 21.modal .modalInner { 22 max-width: 700px; 23 width: 100%; 24 margin: 0 auto; 25 background: #fff; 26 padding: 20px; 27 position: absolute; 28 top: 50%; 29 left: 50%; 30 z-index: 2; 31 -webkit-transform: translate(-50%, -50%); 32 transform: translate(-50%, -50%); 33} 34 35.modal .modalInner img { 36 width: 50%; 37 margin: 0 auto; 38 display: block; 39} 40 41.modal .modal_close { 42 position: absolute; 43 right: 60px; 44 top: 120px; 45 z-index: 3; 46} 47 48.modal .modal_bg { 49 width: 100%; 50 height: 100%; 51 position: absolute; 52 background: rgba(0, 0, 0, 0.8); 53 top: 0; 54 left: 0; 55 z-index: 1; 56} 57 58.modal_open { 59 width: 270px; 60 padding: 30px; 61 text-align: center; 62 background: #000; 63 color: #fff; 64 margin: 0 auto; 65 border-radius: 50px; 66} 67/*# sourceMappingURL=style.css.map */
JS
1'use strict'; 2 3 4const modal = document.getElementById('modal'); 5const modalInner = document.getElementById('modalInner'); 6const close = document.getElementById('modal_close'); 7const bg = document.getElementById('modal_bg'); 8const show = document.getElementById('modal_open'); 9 10 11show.addEventListener('click', () => { 12modal.classList.add('is-show'); 13}); 14 15
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/12 07:24
2020/08/12 07:31
2020/08/12 07:37
2020/08/12 07:39
2020/08/12 07:59