/ / Защо моят jquery div плъзгач прескача някои от divs? - javascript, jquery, html, галерия за изображения, jquery-плъзгач

Защо моят jquery div плъзгач прескача някои от divs? - javascript, jquery, html, галерия за изображения, jquery-плъзгач

http://jsfiddle.net/czt0mycw/

<body>
<div id="hold_divs">hold divs
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
<div id="div4">div4</div>
</div>
</body>

Това е първият ми път, когато изграждам плъзгач за jqueryи показва най-странното поведение. Когато първата страница се зареди, тя плъзга (автоматично) съдържанието (моите 4 дивизии, подредени една върху друга) вдясно успешно. Но след завършване на цялото слайдшоу, плъзгачът вече не показва div1 (div с червения фон). Вместо това, той прескача (вярвам, че това се случва) и показва div div ("hold_divs").

Когато отстранявах грешки, промених кода, за да се плъзгав само 2 раздели и възникна подобна грешка. Този път двата дяла се плъзгат правилно само веднъж (когато страницата е заредена за първи път). След като първото слайдшоу приключи успешно, то показа първото от 2-те дивизии, но 2-ра част от нея не беше показана; 3-то div в масива беше. o.o http://jsfiddle.net/czt0mycw/1/

Отговори:

0 за отговор № 1

Трябва да нулирате divs на следващата итерация на интервала. Промяна:

setInterval(function()
{

var divs=[$("#div4"),$("#div3"),$("#div2"),$("#div1")];
var width=divs[x].width();
divs[x].stop().animate({right:"100%"},"slow");
x+=1;
if(x==4)
{
$("#div4,#div3,#div2,#div1").css("right",0);
x=0;
}
},3000);

да се

setInterval(function()
{
if(x==4)
{
$("#div4,#div3,#div2,#div1").css("right",0);
x=0;
return;
}
var divs=[$("#div4"),$("#div3"),$("#div2"),$("#div1")];
var width=divs[x].width();
divs[x].stop().animate({right:"100%"},"slow");
x+=1;

},3000);

Това, което се случва, е, че отново нулиратеdivs веднага след като започнете анимацията за 4-та div. Вместо това искате да нулирате диветите непосредствено преди да започнете анимацията отново за 1-ви div.