I'm trying to make the font awesome icon only appear when hovering over an image, specifically in the top right corner, but I'm having trouble achieving this. Below is a sample code snippet that demonstrates the issue.
// Get the modal
var modal = document.getElementById('lazy-mymodal');
// Get the image and insert it inside the modal - use its "alt" text as a caption
var img = document.getElementById('lazyimg-popup');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function(){
modal.style.display = "block";
modalImg.src = this.src;
captionText.innerHTML = this.alt;
}
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
#lazyimg-popup {
border-radius: 5px;
cursor: pointer;
transition: 0.3s;
}
#lazyimg-popup:hover {opacity: 0.7;}
/* The Modal (background) */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
padding-top: 30px; /* Location of the box */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.9); /* Black w/ opacity */
}
/* Modal Content (image) */
.modal-content {
margin: auto;
display: block;
width: 100%;
max-width: 1100px;
}
/* Caption of Modal Image */
#caption {
margin: auto;
display: block;
max-width: 80%;
max-width: 700px;
text-align: center;
color: #ccc;
padding: 10px 0;
height: 150px;
}
/* Add Animation */
.modal-content, #caption {
-webkit-animation-name: zoom;
-webkit-animation-duration: 0.6s;
animation-name: zoom;
animation-duration: 0.6s;
}
@-webkit-keyframes zoom {
from {-webkit-transform:scale(0)}
to {-webkit-transform:scale(1)}
}
@keyframes zoom {
from {transform:scale(0)}
to {transform:scale(1)}
}
/* The Close Button */
.close {
position: absolute;
top: 15px;
right: 35px;
color: #000000;
font-size: 40px;
font-weight: bold;
transition: 0.3s;
}
.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
.lazyimg i {
top: 50%;
position: absolute;
left: 0;
right: 0;
transform: translateY(-50%);
}
<div class="lazyimg">
<img id="lazyimg-popup" src="http://moimir.org/wp-content/uploads/2015/08/1.jpg" alt="Trolltunga, Norway" width="700px" height="auto">
<i class="fa fa-expand" aria-hidden="true"></i>
</div>
<!-- The Modal -->
<div id="lazy-mymodal" class="modal">
<img class="modal-content" id="img01">
<span class="img-close">×</span>
<div id="caption"></div>
</div>
<i class="fa fa-expand" aria-hidden="true"></i>
the above needs to be displayed on hover, not click. Just like the image is clickable and enlarges into modal boxes, the fontawesome icon should also enlarge the same image in the modal box when clicked.