私はスライダーを作っていて、問題に遭遇しました。私はモジュラーjs
を練習していますが、このコードは初めて正常に動作しますが、setInterval
はそれ自体を繰り返さないので、スライドが変わり続けることはありません。それを動作させるには?前もって感謝します。関数内からsetIntervalを呼び出す
var currentSlide = 1;
var slider = {
init: function(){
this.cacheDom();
this.setInt();
},
cacheDom: function(){
this.$panel = $('.slider');
this.$actPan = this.$panel.find('.panel.active');
},
setInt: function(){
return setInterval(this.mainFunction(), 3000);
},
mainFunction: function(){
this.$actPan.fadeOut(2000, this.showNextPanel());
this.$panel.find('.tabs li:nth-child('+ currentSlide +')').find('img').attr('src', 'images/g4228.png');
},
showNextPanel: function(){
this.$panel.find('#panel' + currentSlide).removeClass('active');
this.revert();
},
revert: function(){
currentSlide++;
if(currentSlide === 4){currentSlide = 1;}
this.$panel.find('.tabs li:nth-child('+ currentSlide +')').find('img').attr('src', 'images/g4228.png');
this.$panel.find('#panel' + currentSlide).fadeIn(2000, this.adder());
},
adder: function(){
this.$panel.find('#panel' + currentSlide).addClass('active');
}
};
slider.init();
だから、私だけsetInt
とinit
機能が変化する必要があると考えています。
これは同じ方法で動作します@NishanthMatha –
私は '' prototype''を調べ、常に ''これを返すようにしてあなたの関数が連鎖可能であるようにすることをお勧めします。 – seahorsepip
繰り返しはどういう意味ですか?あなたは何らかの方法で間隔を止めたいですか? – seahorsepip