私はjavascriptで合計初心者です。 私はこれらの2つの写真でモーダル画像を作成しようとしています。 querySelectorAllを使用してクラスを選択する際に問題があります。 私はquerySelectorAll( '。pics1)[0];querySelectorAll not working
ただし、querySelectorAll( '。pics')では機能しません。
document.getElementsByClassNameを使用する方が良いでしょうか?
var modal= document.getElementById('myModal');
var image= document.querySelectorAll('.pics');
var modalpic= document.getElementById('img01');
image.addEventListener('click', function(){
modal.style.display = "block";
modalpic.src = this.src;
});
var close= document.getElementById('close');
close.addEventListener('click', function(){
modal.stlye.display="none";
});
.modal{
display: none;
position: fixed;
z-index: 1;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0,0.9);
}
.modalImage{
margin: 0 auto;
display: block;
width: 95%;
align:center;
}
.pics{
cursor: pointer;
width: 20%;
display: block;
transition: 0.4s;
border-radius: 5px;
}
.pics:hover{
opacity: 0.7;
}
#close{
position: absolute;
top: 15px;
right: 10px;
color: gold;
font-size: 40px;
font-weight: bold;
transition: 0.3s;
cursor:pointer;
}
#close:hover{
opacity: 0.7;
}
<img class="pics" src="http://www.petakids.com/wp-content/uploads/2015/11/Baby-Bunny.jpg" />
<img class="pics" src="https://images-na.ssl-images-amazon.com/images/G/01/img15/pet-products/small-tiles/23695_pets_vertical_store_dogs_small_tile_8._CB312176604_.jpg"/>
<div class="modal" id="myModal">
<img class="modalImgage" id="img01">
</img>
<span id="close" onclick="document.getElementById('myModal').style.display='none'">×</span>
</div>
それはHTMLのコレクションですので、それは単一の要素ではありません。 – epascarello
querySelectorAllはHTMLコレクションを返します。コレクション全体を反復処理する必要がある各イメージにリスナーを追加する場合。それは期待どおりに機能しています。 –
私はquerySelectorAll( '。pics1)[0]を置く場合。 ??または私がquerySelectorAll( '。写真)[0]を置く場合; – snit80