简体   繁体   English

怎么办?(oop Slider javascript 和 jquery)

[英]How can do it?(oop Slider javascript and jquery)

** hey guys i've got 2 problems; ** 嘿伙计们,我有 2 个问题; 1: when i set (this.counter = 0) slideFunk method() done once for eq(0) but it can't go to the next eq 1:当我设置(this.counter = 0)slideFunk method()为eq(0)完成一次但它不能go到下一个eq

2: i want it be infinity loop when (_counter = last pic) _counter come back to 0 2:当 (_counter = last pic) _counter 回到 0 时,我希望它是无限循环

i've got 6 pics **我有6张照片**

// OOP SLIDER
$("img").css("left" , "700px")
$("img").eq(0).css("left" , 0)

class Slider{
    constructor(_counter) {
        this.counter = _counter
        this.interval = 900
        this.delay = 1500
    }

    slideFunc=()=>{
        $("img").eq(this.counter).animate({left: 0}, this.interval ,()=> {
            $("img").eq(this.counter).animate({left: 0}, this.delay,()=> {
                $("img").eq(this.counter).animate({left: (-1 * 700)}, this.interval  , ()=> {
                    $(this).css("left", "700px")
                });
               // this.counter = ++this.counter >= $("img").length ? 0 : this.counter;
            });
        });
    }
}

let sliderobj = new Slider(0)

sliderobj.slideFunc()

I think, you don't need a counter for that, use instead each() function for iterate throught all images inside of a infinite loop.我认为,您不需要计数器,而是使用 each() function 来遍历无限循环内的所有图像。

https://api.jquery.com/each/ https://api.jquery.com/each/

At same time i see you use in animate function a callback into arg3, thats wrong, is arg4 where you need put this callback.同时,我看到您在动画 function 中使用了对 arg3 的回调,这是错误的,您需要在 arg4 中放置此回调。

I will put you an example of how to do that, you can modify it for your needs.我会给你一个例子来说明如何做到这一点,你可以根据自己的需要进行修改。

 // OOP SLIDER //$("img").css("left", "700px") //$("img").eq(0).css("left", 0) $("img").css("width", "30px").css({display: "block", position: "relative"}); class Slider{ constructor(){ this.interval = 1000; this.delay = 1500; } slideFunc(){ $("img").each(function(index, element){ $(element).animate({left: "+=700px"}, this.interval, null, function(){ $(this).css({left: "100px"}); //End }); }); this.slideFunc(); } } let sliderobj = new Slider(); sliderobj.slideFunc();
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <img src="https://www.w3schools.com/tags/img_girl.jpg"/> <img src="https://www.w3schools.com/tags/img_girl.jpg"/> <img src="https://www.w3schools.com/tags/img_girl.jpg"/> <img src="https://www.w3schools.com/tags/img_girl.jpg"/> <img src="https://www.w3schools.com/tags/img_girl.jpg"/> <img src="https://www.w3schools.com/tags/img_girl.jpg"/> <img src="https://www.w3schools.com/tags/img_girl.jpg"/>

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

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