使用javascript在最后一张图片上停止我的滑块

使用javascript在最后一张图片上停止我的滑块,javascript,slider,Javascript,Slider,我是javascript的初学者,我正在寻找一种解决方案,在最后一张图片之后停止我的滑块。下面的代码显示了有关它的当前代码。大部分来自学校 var slideIndex = 1; showSlides(slideIndex); function next_prev(n) { showSlides(slideIndex += n); } function startbild(){ var slides = document.getElementsByClassName("mySlide

我是javascript的初学者,我正在寻找一种解决方案,在最后一张图片之后停止我的滑块。下面的代码显示了有关它的当前代码。大部分来自学校

var slideIndex = 1;
showSlides(slideIndex);

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

function startbild(){
  var slides = document.getElementsByClassName("mySlides");
  if(slides == 0){} else{
    slides[0].style.display = "block";
    for (i = 1; i < slides.length; i++) {
    slides[i].style.display = "none"; 
    document.getElementById("dia-shows").innerHTML = 1;
    }
  }
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  if (n > slides.length) {slideIndex = 1} 
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
    slides[i].style.display = "none"; 
  }
  slides[slideIndex-1].style.display = "block";
  document.getElementById("dia-shows").innerHTML = slideIndex;
  document.getElementById("dia-gesamt").innerHTML = slides.length;
}
var slideIndex=1;
放映幻灯片(幻灯片索引);
功能下一个\上一个(n){
放映幻灯片(幻灯片索引+=n);
}
函数startbild(){
var slides=document.getElementsByClassName(“mySlides”);
如果(幻灯片==0){}else{
幻灯片[0]。style.display=“block”;
对于(i=1;islides.length){slideIndex=1}
如果(n<1){slideIndex=slides.length}
对于(i=0;i
应该是

if (n > slides.length) {slidesIndex=slides.length}  //if last is reached, stay at last
你也可以改变

function next_prev(n) {
 showSlides(slideIndex += n);
}
致:

注:W3学校提倡糟糕的代码风格,请从MDN开始学习,有更好的+有更好的编码风格+更好的解释。下面是一个改进的代码:

var slideIndex = 1;
var slides;// no need to redefine in every function

function init(){
    slides = document.getElementsByClassName("mySlides");//get the slides, store in variable
    if(!slides){
        return console.error("no slides..");
    }
    showSlides();//show the first time
    setInterval(next_prev,1000,1);//demo ( every 1000ms increase with 1)
}
window.onload=init;//if page loaded, init

function next_prev(n) {
    slideIndex=Math.max(Math.min(slideIndex+n,slides.length),1);// slidesIndex stays between slides.length and 1.
    showSlides();
 } 

function showSlides() {//no need to pass n, its equal to slideIndex
     for (var i = 0; i < slides.length; i++) {
        slides[i].style.display = "none"; //hide all
     }
    slides[slideIndex-1].style.display = "block";//show one
    document.getElementById("dia-shows").innerHTML = slideIndex;
    document.getElementById("dia-gesamt").innerHTML = slides.length;
}
var slideIndex=1;
var幻灯片;//无需在每个函数中重新定义
函数init(){
slides=document.getElementsByClassName(“mySlides”);//获取幻灯片,存储在变量中
如果(!幻灯片){
返回控制台。错误(“无幻灯片”);
}
showSlides();//第一次显示
setInterval(next_prev,1000,1);//演示(每1000毫秒增加1)
}
window.onload=init//如果页面已加载,则初始化
功能下一个\上一个(n){
slideIndex=Math.max(Math.min(slideIndex+n,slides.length),1);//slideIndex保持在slides.length和1之间。
放映幻灯片();
} 
函数showselides(){//不需要传递n,它等于slideIndex
对于(变量i=0;i
-->

应该是

if (n > slides.length) {slidesIndex=slides.length}  //if last is reached, stay at last
你也可以改变

function next_prev(n) {
 showSlides(slideIndex += n);
}
致:

注:W3学校提倡糟糕的代码风格,请从MDN开始学习,有更好的+有更好的编码风格+更好的解释。下面是一个改进的代码:

var slideIndex = 1;
var slides;// no need to redefine in every function

function init(){
    slides = document.getElementsByClassName("mySlides");//get the slides, store in variable
    if(!slides){
        return console.error("no slides..");
    }
    showSlides();//show the first time
    setInterval(next_prev,1000,1);//demo ( every 1000ms increase with 1)
}
window.onload=init;//if page loaded, init

function next_prev(n) {
    slideIndex=Math.max(Math.min(slideIndex+n,slides.length),1);// slidesIndex stays between slides.length and 1.
    showSlides();
 } 

function showSlides() {//no need to pass n, its equal to slideIndex
     for (var i = 0; i < slides.length; i++) {
        slides[i].style.display = "none"; //hide all
     }
    slides[slideIndex-1].style.display = "block";//show one
    document.getElementById("dia-shows").innerHTML = slideIndex;
    document.getElementById("dia-gesamt").innerHTML = slides.length;
}
var slideIndex=1;
var幻灯片;//无需在每个函数中重新定义
函数init(){
slides=document.getElementsByClassName(“mySlides”);//获取幻灯片,存储在变量中
如果(!幻灯片){
返回控制台。错误(“无幻灯片”);
}
showSlides();//第一次显示
setInterval(next_prev,1000,1);//演示(每1000毫秒增加1)
}
window.onload=init//如果页面已加载,则初始化
功能下一个\上一个(n){
slideIndex=Math.max(Math.min(slideIndex+n,slides.length),1);//slideIndex保持在slides.length和1之间。
放映幻灯片();
} 
函数showselides(){//不需要传递n,它等于slideIndex
对于(变量i=0;i

-->我想,您的代码不完整。你能在问题发生的地方贴一个工作示例吗

改变

if (n < 1) {slideIndex = slides.length}
if (n > slides.length) {slideIndex = 1} 
if(n<1){slideIndex=slides.length}
如果(n>slides.length){slideIndex=1}

if(n<1){
slideIndex=1;
}else if(n>幻灯片长度){
slideIndex=slides.length;
}否则{
slideIndex=n;
}
你应该在两个方向上做你想做的事

当第一帧或最后一帧可见时,应隐藏允许用户再次滑动的相关控件


每当传递的n超出有效范围时,它就会被限制在该范围内。

我认为,您的代码不完整。你能在问题发生的地方贴一个工作示例吗

改变

if (n < 1) {slideIndex = slides.length}
if (n > slides.length) {slideIndex = 1} 
if(n<1){slideIndex=slides.length}
如果(n>slides.length){slideIndex=1}

if(n<1){
slideIndex=1;
}else if(n>幻灯片长度){
slideIndex=slides.length;
}否则{
slideIndex=n;
}
你应该在两个方向上做你想做的事

当第一帧或最后一帧可见时,应隐藏允许用户再次滑动的相关控件

当传递的n超出有效范围时,它将被限制在该范围内。

if(slides==0){}else{better if(slides){if(slides==0){}else{better if(slides){