ссылка на указанный c слайд с другой страницы - PullRequest
0 голосов
/ 14 июля 2020

У меня есть слайд-шоу на одной из моих страниц, и в каждом слайде слайд-шоу есть ссылка на любые другие страницы моих сайтов. После перехода на другие страницы есть кнопка "Назад" и кнопка "Далее", с помощью которой пользователи могут вернуться к слайд-шоу. Проблема в том, что всякий раз, когда я нажимаю кнопку «Назад», слайд-шоу запускается с самого начала. Я хочу, чтобы слайд-шоу продолжалось с того места, где я остановился, без перезапуска слайд-шоу с самого начала каждый раз, когда я перехожу к нему.

var slideIndex = 1;
var timer = null;
showSlides(slideIndex);

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var indicators = document.getElementsByClassName("indicator");
  if (n == undefined) {
    n = ++slideIndex;
  }
  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 < indicators.length; i++) {
    indicators[i].className = indicators[i].className.replace(" active", "");
  }
  slides[slideIndex - 1].style.display = "block";
  indicators[slideIndex - 1].className += " active";
  timer = setTimeout(showSlides, 15000);
}

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

function currentSlide(n) {
  clearTimeout(timer);
  showSlides(slideIndex = n);
}
image

1 Ответ

2 голосов
/ 15 июля 2020

Вы захотите сохранить где-нибудь этот активный индекс слайдов .

Я предлагаю изучить использование строк запроса (примеры: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams), так как вы упомянул, что это может перенаправлять на ваши разные «веб-сайты» (например, разные домены).

Просто добавьте строку запроса к своей ссылке перенаправления, например:

<a href="http://mywebsite.com?activeSlide=2"></a>

Где 2 - активный слайд на вашей странице, содержащей слайдер. Когда вы go вернетесь на свою страницу, просто прочтите параметр строки запроса активного слайда, используя:

var urlParams = new URLSearchParams(window.location.search);

var slideIndex = urlParams.get('activeSlide'); // this is the active slide

// your current code below

var timer = null;
showSlides(slideIndex);

function showSlides(n) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...