Слайд-шоу изображений HTML показывает пустой экран - PullRequest
0 голосов
/ 01 марта 2019

У меня нет большого опыта работы с html, но мне нужно настроить слайд-шоу изображений на моем сайте.Я нашел этот фрагмент кода в w3schools, но после добавления медиазапроса он показывает пустой экран между изображениями.Как мне избавиться от этого и иметь только спина к спине только изображения?Спасибо

<!DOCTYPE html>
<html>

<head>
<title>W3.CSS</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta content="text/html; charset=iso-8859-2" http-equiv="Content-Type">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<style>
.mySlides {display:none;}


@media only screen and (min-width: 480px) {

  #web {
    display: none;
  }
}


@media only screen and (max-width: 480px) {

  #mobile {
    display: none;
  }
}


</style>
</head>

<body>


<div class="w3-content w3-section" id="web">
  <img class="mySlides" src="https://www.91-img.com/pictures/126849-v6-honor-10-mobile-phone-large-1.jpg" style="width:100%">
  <img class="mySlides" src="https://static.toiimg.com/photo/64428999/Vivo-NEX.jpg" style="width:100%">
 
</div>

<div class="w3-content w3-section" id="mobile">
  <img class="mySlides" src="https://japan-magazine.jnto.go.jp/jnto2wm/wp-content/uploads/1603_iwate_main.jpg" style="width:100%">
  <img class="mySlides" src="https://image.shutterstock.com/image-photo/panoramic-view-idyllic-mountain-scenery-260nw-622792952.jpg" style="width:100%">
</div>

<script>
var myIndex = 1;
carousel();

function carousel() {
  var i;
  var x = document.getElementsByClassName("mySlides");
  for (i = 1; i < x.length; i++) {
    x[i].style.display = "none";  
  }
  myIndex++;
  if (myIndex > x.length) {myIndex = 1}    
  x[myIndex-1].style.display = "block";  
  setTimeout(carousel, 2000);
}
</script>

</body>
</html>

1 Ответ

0 голосов
/ 01 марта 2019

Все индексы начинаются с 0. Поэтому измените начальный индекс в цикле for на 0 и получите его работу.Кроме того, вам нужно изменить classNames для ваших изображений в мобильной версии (именно поэтому вы получили пустые страницы после нескольких изображений), и вы ввели неверные медиа-запросы.

var myIndex = 0;
carousel();

function carousel() {
  var i;
  if(screen.width <= 480){
    var x = document.getElementsByClassName("mySlides_mobile");
  }else{
    var x = document.getElementsByClassName("mySlides");
  }
  for (i = 0; i < x.length; i++) {
    x[i].style.display = "none";  
  }
  myIndex++;
  if (myIndex > x.length) {myIndex = 1}    
  x[myIndex-1].style.display = "block";
  setTimeout(carousel, 2000);
}
.mySlides, .mySlides_mobile {
  display:none;
}
@media only screen and (max-width: 480px) {
  #web {
    display: none;
  } 
}
@media only screen and (min-width: 480px) {
   #mobile {
     display: none;
  }
}
<!DOCTYPE html>
<html>

<head>
<title>W3.CSS</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta content="text/html; charset=iso-8859-2" http-equiv="Content-Type">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

</head>

<body>


<div class="w3-content w3-section" id="web">
  <img class="mySlides" src="https://www.91-img.com/pictures/126849-v6-honor-10-mobile-phone-large-1.jpg" style="width:100%">
  <img class="mySlides" src="https://static.toiimg.com/photo/64428999/Vivo-NEX.jpg" style="width:100%">
 
</div>

<div class="w3-content w3-section" id="mobile">
  <img class="mySlides_mobile" src="https://japan-magazine.jnto.go.jp/jnto2wm/wp-content/uploads/1603_iwate_main.jpg" style="width:100%">
  <img class="mySlides_mobile" src="https://image.shutterstock.com/image-photo/panoramic-view-idyllic-mountain-scenery-260nw-622792952.jpg" style="width:100%">
</div>

</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...