javascript - bxslider设置不同侧停顿长度卡在页面上

标签 javascript jquery bxslider

我正在寻求解决有关为每张幻灯片设置不同暂停长度的 bxslider 问题。我最初遵循解决方案 here它对于 5 或​​ 6 张幻灯片效果很好,但在杂耍超过 10-15 张之后,旋转器现在就挂起了:

Screenshot here.

这是我根据上面的示例使用的 slider 代码:

<script>
$(document).ready(function(e) {
    var ImagePauses = [15000,15000,15000,15000,15000,15000,15000,10000,10000,10000,10000,10000,10000,5000,5000,5000,5000,5000,5000,5000];

    var slider = $('.bxslider').bxSlider();
    modifyDelay(0);

    function modifyDelay(startSlide){
        slider.reloadSlider({
            mode: 'horizontal',
            //infiniteLoop: true,
            auto: true,
            autoStart: true,
            autoDirection: 'next',
            autoHover: true,
            pause: ImagePauses[startSlide],
            autoControls: false,
            pager: true,
            pagerType: 'full',
            controls: true,
            //captions: true,
            //speed: 500,
            startSlide: startSlide,
            onSlideAfter: function($el,oldIndex, newIndex){
                modifyDelay(newIndex);  
            } 
        });
    }
});
</script>

我遗漏了什么明显的东西吗?谢谢。

最佳答案

更新

似乎有更多涉及制作 bxSlider 自定义自动功能。我意识到如果 auto 则不需要 setTimeout()goToNextSlide()goToSlide() 方法使用选项。

我制作了 3 个对象文字,每个代表一个 bxSlider 选项。当下一组间隔出现时,switch() 将使用下一组 bxSlider 选项调用 reloadSlider() 方法。


我们可以通过回调onSlideAfter来控制幻灯片间隔的延迟,回调函数bxDelay()使用setTimeout并且方法goToNextSlide()。详细信息已在源代码中注释。

片段

.as-console.as-console * {
  background: orange;
  color: black;
}
<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <title>bxArraySourcePauseInterval</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/bxslider/4.2.5/jquery.bxslider.css">
  <style>
    img {
      display: block;
      margin: 0 auto;
    }
  </style>
</head>

<body>

  <ul class="bx">
    <li>
      <img src="http://placehold.it/350x150/000/fff?text=1">
    </li>
    <li>
      <img src="http://placehold.it/350x150/00f/fc0?text=2">
    </li>
    <li>
      <img src="http://placehold.it/350x150/0e0/000?text=3">
    </li>
    <li>
      <img src="http://placehold.it/350x150/f00/fff?text=4">
    </li>
    <li>
      <img src="http://placehold.it/350x150/fff/000?text=5">
    </li>
  </ul>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
  <script src="https://cdn.jsdelivr.net/bxslider/4.2.5/jquery.bxslider.min.js"></script>
  <script>
    $(function() {
      var count = 0;
      var cfg0 = {
        auto: true,
        pause: 3000,
        autoStart: true,
        autoHover: true,
        onSlideAfter: bxDelay
      }
      var cfg1 = {
        auto: true,
        pause: 2000,
        autoStart: true,
        autoHover: true,
        onSlideAfter: bxDelay
      }
      var cfg2 = {
        auto: true,
        pause: 1000,
        autoStart: true,
        autoHover: true,
        onSlideAfter: bxDelay
      }
      var bx = $('.bx').bxSlider(cfg0);

      function bxDelay($obj, from, to) {
        count++;
        switch (count) {
          case 8:
            bx.reloadSlider(cfg1);
            break;
          case 15:
            bx.reloadSlider(cfg2);
            break;
          case 22:
            bx.reloadSlider(cfg0);
            count = 0;
            break;
          default:
            break;
        }
        console.log('Count: ' + count);
      }

    });
  </script>

</body>


</html>

关于javascript - bxslider设置不同侧停顿长度卡在页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40897482/

相关文章:

javascript - 在用户在文本字段中输入的同时检查

javascript - 无法在我的 Android 应用中显示 Google map

jquery - jqueryui 选项卡内的流程图

javascript - BxSlider:最后一张幻灯片上为 "next"-> 跳回第一张幻灯片?

javascript - 为什么 jQuery 事件在我使用由 jQuery 生成的类时不起作用

javascript - 由于数据量巨大,Javascript 变得无响应和停止

javascript - 使用 AJAX 更新 DropDownList

javascript - 将元素移动到父元素的末尾

jquery - BX slider 和 Jquery

javascript - 具有样式的 bxslider 自定义寻呼机