如何在显示最后一张幻灯片时停止此JavaScript

时间:2017-07-08 22:41:16

标签: javascript html

我希望在显示最后一张幻灯片时停止此javascript,以便下一个按钮不起作用,但与显示第一张幻灯片时的上一个按钮相同。对于上一个按钮,当我按下它并且滑块位于第一张幻灯片时,我希望它保持当前幻灯片。

Javascript代码:

var slideIndex = 1;
showDivs(slideIndex);

function plusDivs(n) {
    showDivs(slideIndex += n);
}

function showDivs(n) {
    var i;
    var x = document.getElementsByClassName('slide');
    if (n < 1) {slideIndex = 1;}
    for (i = 0; i < x.length; i++) {
        x[i].style.display = 'none';
    }
    x[slideIndex-1].style.display = 'block';
    }

HTML code:

<div class="links-to-wbp">
                    <div class="slide">
                        <a href="/physics/index.html"><img class="wbp" alt="thumb1" src="img/thumb1.png"/></a><a href="/francais/index.html"><img class="wbp" alt="thumb2" src="img/thumb2.png"/></a><a href="/strict/index.html"><img class="wbp" alt="thumb3" src="img/thumb3.png"/></a></div>
                <div class="slide">
                        <img class="wbp" alt="thumb4" src="img/thumb4.png"/><img class="wbp" alt="thumb5" src="img/thumb5.png"/><img class="wbp" alt="thumb6" src="img/thumb6.png"/></div>
                <div class="slide">
                        <img class="wbp" alt="thumb7" src="img/thumb7.png"/><img class="wbp" alt="thumb8" src="img/thumb8.png"/><img class="wbp" alt="thumb9" src="img/thumb9.png"/></div>
                     <div onclick="plusDivs(-1)" class="button previous_button">&#60;</div>
                    <div onclick="plusDivs(+1)" class="button next_button">&#62;</div>
                </div>

3 个答案:

答案 0 :(得分:0)

  

我想在显示最后一张幻灯片时停止此javascript,所以   下一个按钮不会起作用。

为此,您可以向showDivs函数添加新的if语句

protocol HasTableView {
    var tableView: NSTableView? { get }
}

所以你的showDivs函数现在看起来应该是这样的:

class ExampleViewController: NSViewController, HasTableView {
    var tableView: NSTableView? { return myTableView }
    ...
}
  

但与显示第一张幻灯片时的上一个按钮相同。对于   上一个按钮,当我按下它并且滑块位于第一个按钮时   幻灯片我希望它保持当前的幻灯片。

这应该已经有效了,因为这是showDiv函数中以下statemnt的目的:

  

if(n&lt; 1){slideIndex = 1;}

答案 1 :(得分:0)

要获得预期结果,请将以下行添加到showDivs函数

//add this line to stop after last slide
  if(n > x.length){
      n= slideIndex =x.length;
   }

Codepen- https://codepen.io/nagasai/pen/vZVeZV

解决方案:

上述解决方案,将检查下一个值是否超过幻灯片类的计数(即,在这种情况下为3)

如果超过幻灯片类的数量,请将 n slideIndex 重置为幻灯片类的长度。

对于第一张幻灯片的上一张幻灯片,已有if条件可用

if (n < 1) {slideIndex = 1;}

答案 2 :(得分:0)

您必须检查slideIndex的值是否大于幻灯片的长度数组,然后将此长度指定给slideIndex。如果幻灯片索引的值小于1,则为其分配1。

简单的代码如bellow:

<Button.Flyout>