【问题标题】:Slide Up and Fade Div continuously连续向上滑动和淡出 Div
【发布时间】:2018-07-27 04:20:36
【问题描述】:

我想做类似https://muzzleapp.com/ 的东西。我希望右侧的移动项目应该向上滑动并从下到上淡出。项目应该是连续移动的,所以在最后一个 div 之后,它会从头开始。我已经尝试过我自己的代码。但坚持从起点开始。它从一开始就无法正常启动。

html

function moveItems(el) {
  var x = 1;
  var flag = 0;
  var elems = $(el).nextAll();
  count = elems.length;
  elems.each (function (i) {
    setTimeout(function() {
      if (x>1) { 
        y = x-1;
        $('#slider_'+y).show().delay(2000).slideUp().fadeOut();
      }							
      $('#slider_'+x).show().delay(2000).slideUp();
      x++;
      if (!--count) {
        setTimeout(function() {
        moveItems('.panel');
        }, 6000)
      }
    }, i*2000);
  })
}

moveItems('.panel');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="panel" id='slider_1'>
    <div class="panel-body">
    <div class="row">
        slider 1
      </div>
    </div>
</div>

<div class="panel" id='slider_2'>
    <div class="panel-body">
    <div class="row">
        slider 2
      </div>
    </div>
</div>

<div class="panel" id='slider_3'>
    <div class="panel-body">
    <div class="row">
        slider 3
      </div>
    </div>
</div>

【问题讨论】:

  • 请分享您的 HTML 和您尝试过的代码 sn-p
  • @AravindS 我已经用 html 更新了。请检查
  • 定义«正确启动»....

标签: javascript jquery css jquery-ui


【解决方案1】:

我稍微更新了你的逻辑来处理隐藏和显示。这是更新的预览https://jsfiddle.net/Aravi/hd465gpc/13/

function moveItems(el) {
  var elems = document.querySelectorAll(el);
  Array.from(elems).forEach((item,index) => {
    setTimeout(function() {
     index+=1;
     $('#slider_'+index).show().delay(2000).slideUp().fadeOut();
     if (index == elems.length) {
       setTimeout(function() {
		   for(j=1;j<= elems.length;j++){ $('#slider_'+j).show()}
           moveItems('.panel');
        }, 6000)
      }
      
    }, index*2000);
})
}

moveItems('.panel');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="panel" id='slider_1'>
    <div class="panel-body">
    <div class="row">
        slider 1
      </div>
    </div>
</div>

<div class="panel" id='slider_2'>
    <div class="panel-body">
    <div class="row">
        slider 2
      </div>
    </div>
</div>

<div class="panel" id='slider_3'>
    <div class="panel-body">
    <div class="row">
        slider 3
      </div>
    </div>
</div>

<div class="panel" id='slider_4'>
    <div class="panel-body">
    <div class="row">
        slider 4
      </div>
    </div>
</div>

<div class="panel" id='slider_5'>
        <div class="panel-body">
        <div class="row">
            slider 5
          </div>
        </div>
    </div>

【讨论】:

  • 非常感谢@Aravind S 几乎可以工作了。只是最后一项比函数第二次执行有点晚。它在函数第一次执行时完美运行。你有什么想法吗?
  • 只是最后一项比函数第二次执行有点晚了:你是指删除所有内容后显示所有滑块的延迟吗?
  • 没有。虽然我不希望删除,但延迟是可以的。我想在最后一项之后在底部插入第一个。但这里的问题是当函数第二次执行时,最后一个项目没有从底部向上滑动,而是突然出现在屏幕上。
  • 抱歉..我无法理解。"但这里担心的是当函数第二次执行时,最后一个项目没有从底部向上滑动,而是突然出现在屏幕上" - 它看起来像只适合我的幻灯片
  • 请看:drive.google.com/file/d/1qmgkm5Y_nIfsluApYzjJCxEbwmy5jS3B/view 在第一次调用函数时,你可以看到 'steven' 之后上滑的 'ben' 卡片。但在第二次它并没有滑上,而是突然出现。
猜你喜欢
  • 2019-04-28
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多