I am trying to add a click event to every image in my list. The function is not fired for some reason. Can you find out why?
note: if I call ShowOverlayLayer() programmatically, it is OK.
This is my code: EDIT - I inserted my full css code, I noticed that without it as some wrote - it is working. So it is somewhere in the extra css code maybe
let imagesList = document.getElementsByClassName("smallImage");
let overlayLayer = document.getElementById("overlayLayer");
for (let i = 0; i < imagesList.length; i++) {
imagesList[i].addEventListener("click", (() => {
ShowOverlayLayer();
}));
}
function ShowOverlayLayer() {
if (!overlayLayer.classList.contains("overlayLayerShow")) {
overlayLayer.classList.add("overlayLayerShow");
}
if (overlayLayer.classList.contains("overlayLayerHide")) {
overlayLayer.classList.remove("overlayLayerHide");
}
}
<!-- edited code -->
body{
margin: 0;
}
html, body {
height: 100%;
width: 100%;
}
.smallImage{
float: left;
position: relative;
height: 100%;
}
#overlayLayer{
position: fixed;
height: 100%;
width: 100%;
background-color: black;
}
.overlayLayerHide{
opacity: 0;
}
.overlayLayerShow{
opacity: 0.8;
}
<!DOCTYPE html>
<html lang="en-US">
<head>
<!--CSS link-->
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="gallerySection">
<img class="smallImage" src="images/adult-camping.jpg" />
<img class="smallImage" src="images/beach-clouds.jpg" />
<img class="smallImage" src="images/brown-country.jpg" />
<img class="smallImage" src="images/clouds-dawn.jpg" />
</div>
<div id="overlayLayer" class="overlayLayerHide">
</div>
<!--JS link-->
<script src="script.js"></script>
</body>
</html>
this code should set an overlay div