Javascript 如何在最后使用jQuery重置脚本?

Javascript 如何在最后使用jQuery重置脚本?,javascript,jquery,Javascript,Jquery,我正在尝试向上滑动三个li,接下来的三个li将显示一次上一个li向上滑动。这是正常工作。我在循环结束时面临问题,我的意思是所有li向上滑动,然后需要一些时间重新开始,我想快速重置 <div id="content"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <

我正在尝试向上滑动三个
li
,接下来的三个
li
将显示一次上一个
li
向上滑动。这是正常工作。我在循环结束时面临问题,我的意思是所有
li
向上滑动,然后需要一些时间重新开始,我想快速重置

<div id="content">
   <ul>
     <li>1</li>
     <li>2</li>
     <li>3</li>
     <li>4</li>
     <li>5</li>
     <li>6</li>
     <li>7</li>
     <li>8</li>
     <li>9</li>
   </ul>
</div>
谁能指导我怎么做


您需要更新
if
条件。如果该值等于或大于
(li length)-1
,则应从头开始

var i=2,
$ul=$(“#内容ul”),
int=setInterval(函数(){
$('li',$ul).slideUp();
$('li'+(i==-1?'':':gt('i+'))+':lt(3)'$ul.slideDown();
i+=3;
如果(i+1>=$('li',$ul).length)i=-1;
// ----^----
},
2000);
#内容ul li:n个孩子(n+4){
显示:无
}

  • 一,
  • 二,
  • 三,
  • 四,
  • 五,
  • 六,
  • 七,
  • 八,
  • 九,

这可能适用于您的要求,请设置时间延迟:

var i = 2,
  $ul = $('#content ul');
var timer; // current timeout id to clear
var timeDelay = 2000; // dynamic interval

function showEm() {
  $('li', $ul).slideUp();
  $('li' + (i == -1 ? '' : ':gt(' + i + ')') + ':lt(3)', $ul).slideDown();
  i += 3;
  if (i >= $('li', $ul).length) i = -1;

  if (i == -1) {
    timeDelay = 10;
  } else {
    timeDelay = 2000;
  }
}

(function repeat() {
  showEm();
  timer = setTimeout(repeat, timeDelay);
})();

如果要减少中的时间,请减少设置的间隔时间sliding@DharaParmar如果我减少
setInterval()
的时间,它将在所有动画上实现
var i = 2,
  $ul = $('#content ul');
var timer; // current timeout id to clear
var timeDelay = 2000; // dynamic interval

function showEm() {
  $('li', $ul).slideUp();
  $('li' + (i == -1 ? '' : ':gt(' + i + ')') + ':lt(3)', $ul).slideDown();
  i += 3;
  if (i >= $('li', $ul).length) i = -1;

  if (i == -1) {
    timeDelay = 10;
  } else {
    timeDelay = 2000;
  }
}

(function repeat() {
  showEm();
  timer = setTimeout(repeat, timeDelay);
})();