简体   繁体   English

Javascript-如何向此幻灯片添加动态按钮?

[英]Javascript - how do I add dynamic buttons to this slideshow?

So I'm making a slideshow with 4 divs that cycle around automatically. 因此,我正在制作一个具有4个div的幻灯片,它们会自动循环播放。 What I have works for this. 我为此所做的。 The thing I'm having diffucluty create is a few buttons at the bottoms where if your click on button three for example, it jumps to div 3 and the automatic sliding jumps there. 我要创建的问题是在底部有几个按钮,例如,如果您单击按钮3,它会跳到div 3,而自动滑动会跳到那里。 Here is my code so far... 到目前为止,这是我的代码...

<div id="slides">
  <div></div> <div></div> <div></div> <div></div>
</div>

<div id="btns">
    <a></a> <a></a> <a></a> <a></a>
 </div>

Javascript: Javascript:

(function slideshow(){

    var slides = document.getElementById('slides').children;
    var btns = document.getElementById('btns').children;
    var i = 0;

    slides[i].style.opacity= '1';
    btns[i].style.opacity= '1';
    slides[i].style.zIndex= '999';

    function timer(){
            i = (i + 1);    
            var len = slides.length;
            var previousSlides = slides[ (i+len-1) % len ];
            var previousBtns = btns[ (i+len-1) % len ];

            if (i % slides.length == 0) {
            i = 0;
            }

            slides[i].style.opacity= '1';
            slides[i].style.zIndex= '999';
            previousSlides.style.opacity= '0';
            previousSlides.style.zIndex= '1';   
            btns[i].style.opacity= '1';
            previousBtns.style.opacity= '0.5';
        }       
        setInterval(timer, 4000);

}());

This works so far, but again I have no idea how to go about making the buttons function, wherein if you click on btn[i] it jump to slides[i]. 到目前为止,它仍然有效,但是我仍然不知道如何使按钮发挥作用,其中,如果您单击btn [i],它将跳到幻灯片[i]。 I thought something along the lines of this would do the trick but it's not working. 我认为按照这种方法可以解决问题,但不起作用。

btns[1].addEventListener('click', function(){
    i = 1;
});

you can do something like this hope this is what you want 你可以做这样的事情,希望这就是你想要的

for( var i = 0; i < btns.length; i++){
  btns[i].addEventListener('click', function(){
     //do your stuff here
  });
}

 <script> for( var i = 0; i < btns.length; i++){ btns[i].addEventListener('click', function(){ alert('test'); }); } (function slideshow(){ var slides = document.getElementById('slides').children; var btns = document.getElementById('btns').children; var i = 0; slides[i].style.opacity= '1'; btns[i].style.opacity= '1'; slides[i].style.zIndex= '999'; function timer(){ i = (i + 1); var len = slides.length; var previousSlides = slides[ (i+len-1) % len ]; var previousBtns = btns[ (i+len-1) % len ]; if (i % slides.length == 0) { i = 0; } slides[i].style.opacity= '1'; slides[i].style.zIndex= '999'; btns[i].style.opacity= '1'; previousSlides.style.opacity= '0'; previousSlides.style.zIndex= '1'; previousBtns.style.opacity= '0.5'; } setInterval(timer, 4000); }()); function testButton(value){ if(value == 1){ alert('Slide'+value); } } </script> 
  <div id="slides"> <div>Slide 1</div> <div>Slide 2</div> <div>Slide 3</div> <div>Slide 4</div> </div> <div id="btns"> <button type="button" onClick ="testButton(1);">Click Me1</button> <button type="button" onClick ="testButton(2);">Click Me2</button> <button type="button" onClick ="testButton(3);">Click Me3</button> <button type="button" onClick ="testButton(4);">Click Me4</button> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM