Код немного изменила для картинки, обернутой в тег <a>
<a class="myalink" href="https://www.w3schools.com/howto/img_fjords.jpg" target=_blank>
<img class="alignnone wp-image-39 size-medium" src="https://www.w3schools.com/howto/img_fjords.jpg" alt="Альт текст" width="300" height="200">
</a>
Только теперь хочется понять, как взять альт-текст картинки, относительно тега <a>?
Надо вместо строки
captionText.innerHTML = this.alt; //было
Что-то сделать. Я попробовала эти две строки поочереди, не помогло:
//captionText.innerHTML = this.getElementsByTagName('img').alt;
//captionText.innerHTML = this.getElementsByTagName('img').getAttribute('alt');
Подскажите пожалуйста.
Вот код:
Код:
|
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
#myImg {
border-radius: 5px;
cursor: pointer;
transition: 0.3s;
}
#myImg: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: 100px; /* 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: 80%;*/
/* max-width: 1000px;*/
}
/* Caption of Modal Image */
#caption {
margin: auto;
display: block;
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: #f1f1f1;
font-size: 40px;
font-weight: bold;
transition: 0.3s;
}
.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
/* 100% Image Width on Smaller Screens */
@media only screen and (max-width: 700px){
.modal-content {
width: 100%;
}
}
</style>
</head>
<body>
<h2>Image Modal</h2>
<p>In this example, we use CSS to create a modal (dialog box) that is hidden by default.</p>
<p>We use JavaScript to trigger the modal and to display the current image inside the modal when it is clicked on. Also note that we use the value from the image's "alt" attribute as an image caption text inside the modal.</p>
<div id="myid" class="content">
<a class="myalink" href="https://www.w3schools.com/howto/img_fjords.jpg" target=_blank>
<img class="alignnone wp-image-39 size-medium" src="https://www.w3schools.com/howto/img_fjords.jpg" alt="Альт текст" width="300" height="200">
</a>
</div>
<!-- The Modal -->
<div id="myModal" class="modal">
<span class="close">×</span>
<img class="modal-content" id="img01">
<div id="caption"></div>
</div>
<script>
// Get the modal
var modal = document.getElementById('myModal');
// Get the image and insert it inside the modal - use its "alt" text as a caption
var alink = document.querySelectorAll('.myalink');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
function show(){
modal.style.display = "block";
modalImg.src = this.href;
captionText.innerHTML = this.alt; //было
//captionText.innerHTML = this.getElementsByTagName('img').alt;
//captionText.innerHTML = this.getElementsByTagName('img').getAttribute('alt');
}
[].forEach.call(alink, function(item) {
item.addEventListener('click', show, false);
});
// 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";
}
document.links[0].onclick = function(event) {
event.preventDefault();
};
</script>
</body>
</html> |