-1

This is the html code

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="style2.css">
    <script src="learn1.js"</script>
</head>
<body>
   <div class="slideshow-container">

<div class="mySlides fade">
  <div class="numbertext">1 / 3</div>
  <img src="learnimg/1.jpg" style="width:100%">
  <div class="text">Caption Text</div>
</div>

<div class="mySlides fade">
  <div class="numbertext">2 / 3</div>
  <img src="learnimg/2.jpg" style="width:100%">
  <div class="text">Caption Two</div>
</div>

<div class="mySlides fade">
  <div class="numbertext">3 / 3</div>
  <img src="learnimg/3.jpg" style="width:100%">
  <div class="text">Caption Three</div>
</div>

<a class="prev" onclick="plusSlides(-1)">?</a>
<a class="next" onclick="plusSlides(1)">?</a>

</div>
<br>

<div style="text-align:center">
  <span class="dot" onclick="currentSlide(1)"></span>
  <span class="dot" onclick="currentSlide(2)"></span>
  <span class="dot" onclick="currentSlide(3)"></span>
</div>
</body>
</html>`

This is the css code

* {box-sizing:border-box} body {font-family: Verdana,sans-serif;margin:0}

/* Slideshow container */ .slideshow-container {   max-width: 1000px; 
position: relative;   margin: auto; }

/* Next & previous buttons */ .prev, .next {   cursor: pointer;  
position: absolute;   top: 0;   top: 50%;   width: auto;   padding:
16px;   margin-top: -22px;   color: white;   font-weight: bold;  
font-size: 18px;   transition: 0.6s ease;   border-radius: 0 3px 3px
0; }

/* Position the "next button" to the right */ .next {   right: 0;  
border-radius: 3px 0 0 3px; }

/* On hover, add a black background color with a little bit
see-through */ .prev:hover, .next:hover {   background-color:
rgba(0,0,0,0.8); }

/* Caption text */ .text {   color: #f2f2f2;   font-size: 15px;  
padding: 8px 12px;   position: absolute;   bottom: 8px;   width: 100%;
text-align: center; }

/* Number text (1/3 etc) */ .numbertext {   color: #f2f2f2;  
font-size: 12px;   padding: 8px 12px;   position: absolute;   top: 0;
}

/* The dots/bullets/indicators */ .dot {   cursor:pointer;   height:
13px;   width: 13px;   margin: 0 2px;   background-color: #bbb;  
border-radius: 50%;   display: inline-block;   transition:
background-color 0.6s ease; }

.active, .dot:hover {   background-color: #717171; }

/* Fading animation */ .fade {   -webkit-animation-name: fade;  
-webkit-animation-duration: 1.5s;   animation-name: fade;   animation-duration: 1.5s; }

@-webkit-keyframes fade {   from {opacity: .4}   to {opacity: 1} }

@keyframes fade {   from {opacity: .4}   to {opacity: 1} }

/* On smaller screens, decrease text size */ @media only screen and
(max-width: 300px) {   .slprev, .slnext,.text {font-size: 11px} }

This is the javascript code

var slideIndex = 1; showSlides(slideIndex);

function plusSlides(n) {   showSlides(slideIndex += n); }

function currentSlide(n) {   showSlides(slideIndex = n); }

function showSlides(n) {   var i;   var slides =
document.getElementsByClassName("mySlides");   var dots =
document.getElementsByClassName("dot");   if (n > slides.length)
{slideIndex = 1}   if (n < 1) {slideIndex = slides.length}   for (i =
0; i < slides.length; i++) {
      slides[i].style.display = "none";   }   for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active", "");   }   slides[slideIndex-1].style.display = "block";  
dots[slideIndex-1].className += " active"; }

All these 3 codes are in different files. This is basically for the creation of a simple slideshow of three images. But when I execute this(all in different files) there is nothing to display(white screen in the browser). But when executed in a single html file(all contents in a single file) there is a perfect slideshow.

I cannot figure out this problem. Please help me out with this.

Funk Forty Niner
  • 74,450
  • 15
  • 68
  • 141
Yathartha Joshi
  • 716
  • 1
  • 14
  • 29

2 Answers2

1

This doesn't seem right :

<script src="learn1.js"</script>

You forgot to close the opening tag, as such :

<script src="learn1.js"></script>

Plus, it's always a good habit to specify your resource type :

<script type="text/javascript" src="learn1.js"></script>
roberto06
  • 3,844
  • 1
  • 18
  • 29
0

The code you posted seems to work just fine.

Maybe the image files isn't where you say they are?

Try opening the console and look for errors.

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {
    slideIndex = 1
  }
  if (n < 1) {
    slideIndex = slides.length
  }
  for (i = 0; i < slides.length; i++) {
    slides[i].style.display = "none";
  }
  for (i = 0; i < dots.length; i++) {
    dots[i].className = dots[i].className.replace(" active", "");
  }
  slides[slideIndex - 1].style.display = "block";
  dots[slideIndex - 1].className += " active";
}
{
  box-sizing: border-box
}
body {
  font-family: Verdana, sans-serif;
  margin: 0
}
/* Slideshow container */

.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}
/* Next & previous buttons */

.prev,
.next {
  cursor: pointer;
  position: absolute;
  top: 0;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
}
/* Position the "next button" to the right */

.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}
/* On hover, add a black background color with a little bit see-through */

.prev:hover,
.next:hover {
  background-color: rgba(0, 0, 0, 0.8);
}
/* Caption text */

.text {
  color: #f2f2f2;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;
}
/* Number text (1/3 etc) */

.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}
/* The dots/bullets/indicators */

.dot {
  cursor: pointer;
  height: 13px;
  width: 13px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}
.active,
.dot:hover {
  background-color: #717171;
}
/* Fading animation */

.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;
}
@-webkit-keyframes fade {
  from {
    opacity: .4
  }
  to {
    opacity: 1
  }
}
@keyframes fade {
  from {
    opacity: .4
  }
  to {
    opacity: 1
  }
}
/* On smaller screens, decrease text size */

@media only screen and (max-width: 300px) {
  .slprev,
  .slnext,
  .text {
    font-size: 11px
  }
}
<div class="slideshow-container">

  <div class="mySlides fade">
    <div class="numbertext">1 / 3</div>
    <img src="https://placeholdit.imgix.net/~text?txtsize=60&txt=1&w=100&h=100" style="width:100%">
    <div class="text">Caption Text</div>
  </div>

  <div class="mySlides fade">
    <div class="numbertext">2 / 3</div>
    <img src="https://placeholdit.imgix.net/~text?txtsize=60&txt=2&w=100&h=100" style="width:100%">
    <div class="text">Caption Two</div>
  </div>

  <div class="mySlides fade">
    <div class="numbertext">3 / 3</div>
    <img src="https://placeholdit.imgix.net/~text?txtsize=60&txt=3&w=100&h=100" style="width:100%">
    <div class="text">Caption Three</div>
  </div>

  <a class="prev" onclick="plusSlides(-1)">❮</a>
  <a class="next" onclick="plusSlides(1)">❯</a>

</div>
<br>

<div style="text-align:center">
  <span class="dot" onclick="currentSlide(1)"></span>
  <span class="dot" onclick="currentSlide(2)"></span>
  <span class="dot" onclick="currentSlide(3)"></span>
</div>
Emil S. Jørgensen
  • 6,216
  • 1
  • 15
  • 28