简体   繁体   English

如何使此视差滑块自动滑动

[英]How can i make this parallax slider to slide automatically

I have parallax slider. 我有视差滑块。 I want this to automatically slide to end and then slide to beginning. 我希望它自动滑到结束,然后滑到开始。 I am new on JavaScript wasted 2 hours by trying. 我是新手,JavaScript浪费了2个小时。

setInterval(changeSlide, 2000);

function changeSlide() {
    var next, prev, slideCount, currentSlide, slideDirection;
    next = document.getElementById('next-slide');
    prev = document.getElementById('prev-slide');
    slideCount = document.getElementById('slider-dots').childNodes.length;
    currentSlide = 1;
    slideDirection = 1;

    if (slideDirection === 1) {
        next.click();
        currentSlide++;
        if (currentSlide === slideCount) {
            slideDirection = -1;
        }
    }

    if (slideDirection === -1) {
        prev.click();
        currentSlide--;
        if (currentSlide === 1) {
            slideDirection = 1;
        }
    }
}

You are close, all you need is to correct your if else logic, also extract your variables initializations out of the function. 亲密无间,您所需要的只是纠正您的if逻辑,还可以从函数中提取变量初始化。

By the way I would like to give you an example which could help you improve your logic or rewrite it. 顺便说一句,我想给你一个例子,它可以帮助你改善逻辑或重写它。

 // INIT VARS BY YOUR LOGIC let currentSlide = 1, slidesLength = 10 // GET YOUR .slider-dots, direction = 'up'; const animateSlide = (slideNumber, direction) => { // HERE YOU COULD CALL YOUR SLIDER API/FUNCTION // WHICH ANIMATES YOUR SLIDER, IT IS NOT NEEDED TO SIMULATE CLICK // eg direction === 'up' ? slider.next() : slider.prev() | slider.goTo(slideNumber) // WHAT EVER IS YOUR SLIDER API // YOU COULD PUT ALSO A LOGIC FOR clearInterval(slideInterval); // IN ORDER TO DISABLE THE AUTOMATIC MODE console.log(slideNumber, direction); } const changeSlide = () => { if (currentSlide === slidesLength) { direction = 'down'; } else if (currentSlide === 1) { direction = 'up'; } switch (direction) { case 'up': currentSlide += 1; break; case 'down': currentSlide -= 1; break; default: currentSlide = 1; console.error('unknown direction'); } animateSlide(currentSlide, direction); } const slideInterval = setInterval(changeSlide, 2000); 

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

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