Модальный скрипт изображения Dreamweaver работает в HTML, но не как внешний файл

#javascript #html #css #modal-dialog #dreamweaver

#javascript #HTML #css #модальный диалог #dreamweaver

Вопрос:

Сводя меня с ума, должно быть просто понять для всех вас, ветеринаров.

Просто код работает в режиме предварительного просмотра в браузере, если я просто удаляю, а затем вставляю обратно в строку расположения файла Javascript <script src="/JS/scripts.js"></script> (иногда приходится делать это несколько раз), затем внезапно он работает в режиме предварительного просмотра в браузере, но никогда в режиме реального времени внутри dreamweaver. Код снова перестает работать, если я сохраняю все файлы и перезагружаю.

Кажется, что код работает нормально, если он весь включен в HTML-файл, но как только я отделяю скрипт от внешнего файла, весь ад вырывается на свободу. Любая информация / помощь будут высоко оценены. Заранее спасибо. Вот код:

 HTML:


<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="CSS/styles.css" rel="stylesheet" type="text/css">
    <script src="JS/scripts.js"></script>
</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>

<img src="images/thumbnail4.jpg" id="myImg" alt="Testes123" style="width:100%;max-width:300px">

<!-- The Modal -->
<div id="myModal" class="modal">
  <span class="close">amp;times;</span>
  <img class="modal-content" id="img01">
  <div id="caption"></div>
</div>


</body>
</html>


JAVASCRIPT:

// JavaScript Document
// 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 img = document.getElementById("myImg");
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function(){
  modal.style.display = "block";
  modalImg.src = this.src;
  captionText.innerHTML = this.a<
}

// 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";
}


CSS:

body {font-family: Arial, Helvetica, sans-serif;}

#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: 700px;
}

/* 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%;
  }
}

  

Ответ №1:

Хорошо, я думаю, я решил это самостоятельно — если строка расположения скриптов находится в начале документа, она завершится ошибкой, строка расположения скриптов должна быть в конце тела после модального кода, чтобы он функционировал правильно.