Javascript 一页多张幻灯片

Javascript 一页多张幻灯片,javascript,Javascript,请根据下面的代码帮助使用多个幻灯片。如果页面上只有一个幻灯片,它就可以正常工作,在另一种情况下,我必须多次复制代码,并为元素提供不同的ID。有没有解决这个问题的方法而不复制代码 以下是W3学校的代码: var slideIndex=1; 放映幻灯片(幻灯片索引); 函数加滑块(n){ 放映幻灯片(幻灯片索引+=n); } 功能当前幻灯片(n){ 放映幻灯片(幻灯片索引=n); } 功能演示幻灯片(n){ var i; var slides=document.getElementsByClass

请根据下面的代码帮助使用多个幻灯片。如果页面上只有一个幻灯片,它就可以正常工作,在另一种情况下,我必须多次复制代码,并为元素提供不同的ID。有没有解决这个问题的方法而不复制代码

以下是W3学校的代码:

var slideIndex=1;
放映幻灯片(幻灯片索引);
函数加滑块(n){
放映幻灯片(幻灯片索引+=n);
}
功能当前幻灯片(n){
放映幻灯片(幻灯片索引=n);
}
功能演示幻灯片(n){
var i;
var slides=document.getElementsByClassName(“mySlides”);
var dots=document.getElementsByClassName(“dot”);
如果(n>slides.length){slideIndex=1}
如果(n<1){slideIndex=slides.length}
对于(i=0;i

1/3
标题文本
2/3
标题二
3/3
标题三
❮
❯


如果要在多个幻灯片中使用同一代码,可以向
showselides
功能添加参数

   var slideIndex = 1;

showSlides(slideIndex,"mySlides","dots");

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

function currentSlide(n,nSliders,nDots) {
  showSlides(slideIndex = n,nSliders,nDots);
}
function showSlides(n,nSliders,nDots) {
  var i;
  var slides = document.getElementsByClassName(String(nSliders));
  var dots = document.getElementsByClassName(nDots);
  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";
}
var slideIndex=1;
放映幻灯片(幻灯片索引、“mySlides”、“dots”);
函数加滑块(n、n滑块、NDOT){
放映幻灯片(幻灯片索引+=n,n幻灯片,NDOT);
}
函数currentSlide(n、n滑块、NDOT){
放映幻灯片(幻灯片索引=n,n幻灯片,NDOT);
}
功能演示幻灯片(n、n幻灯片、NDOT){
var i;
var slides=document.getElementsByClassName(字符串(nSliders));
var dots=document.getElementsByClassName(nDots);
如果(n>slides.length){slideIndex=1}
如果(n<1){slideIndex=slides.length}
对于(i=0;i
这样,您只需在html文件中更改函数的参数

html:


1/3
标题文本
2/3
标题二
3/3
标题三
❮
❯


感谢您的回复,但不幸的是,它无法工作。有什么我遗漏的吗?@Quantz98有什么错误吗?我还删除了2个额外的,@Quantz98你也更改了html中函数的参数了吗?你能举一些例子吗,我对Javascriptonclick=“plusSlides(1,“mySlides”,“dots”)| | onclick=“currentSlide(1,“mySlides”,“dots”)相当陌生。”
<div class="slideshow-container">

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

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

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

<a class="prev" onclick="plusSlides(-1,'mySlides','dots')">&#10094;</a>
<a class="next" onclick="plusSlides(1,'mySlides','dots')">&#10095;</a>

</div>
<br>

<div style="text-align:center">
  <span class="dot" onclick="currentSlide(1,'mySlides','dots')"></span> 
  <span class="dot" onclick="currentSlide(2,'mySlides','dots')"></span> 
  <span class="dot" onclick="currentSlide(3,'mySlides','dots')"></span> 
</div>