Слайд-шоу Javascript

Привет, у меня на моем веб-сайте запущен javascript для слайд-шоу, но он не работает должным образом, когда я меняю изображения вперед и назад, а изображение не отображается автоматически. 6. Может ли кто-нибудь помочь мне написать это, потому что я был пробовал больше месяца и ни к чему не привел. https://wbd-ownwork-13--15nalaas.repl.co/

    <script>
var slideIndex = 1;
showSlides(slideIndex);

// Next/previous controls
function plusSlides(n) {
 showSlides(slideIndex += n);
}

// Thumbnail image controls
function currentSlide(n) {
 showSlides(slideIndex = n);
}

function showSlides(n) {
 var i;
 var slides = document.getElementsByClassName("mySlides");
 var dots = document.getElementsByClassName("demo");
 var captionText = document.getElementById("caption");
 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";
 captionText.innerHTML = dots[slideIndex-1].alt;
}

var slideIndex = 0;
showSlides();

function showSlides() {
   var i;
   var slides = document.getElementsByClassName("mySlides");
   for (i = 0; i < slides.length; i++) {
       slides[i].style.display = "none"; 
   }
   slideIndex++;
   if (slideIndex > slides.length) {slideIndex = 2} 
   slides[slideIndex-2].style.display = "block";
   setTimeout(showSlides, 4000); // Change image every 4 seconds
  }
  </script>

измените изображения, используя галерею на главной странице, и посмотрите, как все стринги испорчены.

Nour Alaas 07.04.2018 09:09

Вам нужно добавить соответствующий код к вашему вопросу. Ссылки на ваш сайт не подходят для вопросов о переполнении стека.

Kirk Beard 07.04.2018 09:12

Вы никогда не используете clearTimeout, поэтому с каждым щелчком вы создаете новый тайм-аут, который независимо продвигает слайд-шоу. slideIndex объявлен дважды и используется непоследовательно. Почему бы не использовать 0 во всем коде?

Sebastian Simon 07.04.2018 09:20

@Xufox, как я могу это сделать

Nour Alaas 07.04.2018 09:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
4
363
1

Ответы 1

Во-первых, вам не нужно добавлять настраиваемые элементы управления для смены слайдов, потому что слайд-шоу более чем достаточно. И во-вторых, вам нужно изменить весь скрипт на данный скрипт только тогда, когда он будет работать, потому что остальная часть вашего скрипта возится со слайд-шоу.

Измените весь скрипт со строки 94 на строку 125 в вашем HTML на это -

<script>
    var slideIndex = 0;
    showSlides();

    function showSlides(){
        var slides = document.querySelectorAll('.mySlides');
        for(var i = 0; i < slides.length; i++){
            slides[i].style.display = "none";
        }
        slides[slideIndex].style.display = "block";
        slideIndex++;
        if (slideIndex > slides.length - 1){slideIndex = 0}
        loop();
    }
    function loop(){
        setTimeout(showSlides, 1000);
    }
</script>

Если проблема не исчезла, спросите еще раз.

извините за поздний ответ, и он отлично работает, спасибо

Nour Alaas 07.05.2018 13:26

Другие вопросы по теме