2

我在不同的 jQuery 选项卡中有许多 jQuery SlidesJS。效果很好。我现在的问题是,当我单击tab2withslide2并返回tab1with 时slide1,我想slide1从 1 点重新开始!我的代码是:

<script>
    function start(_start) {
        if(_start != "") {
            starter = _start;
        } else {
            starter = 1;
        }
        $('#slides1, #slides2, #slides3').slides({
            start: starter,
            preload: true,
            slideSpeed: 1000,
            play: 4000,
            pause: 2000,
            slideEasing: 'easeInOutQuint',
            generateNextPrev: false,
            pagination: false,
            next: 'next',
            prev: 'prev'
        });
        $("#tabs").tabs();              
    }

    $(document).ready(function() {
        start(1);

        $("#ui-id-1").click(function(){
            start(1);
        });         
    });
</script>   

#ui-id-1tab1。点击它应该从slide11 开始。但我得到的是一个空白的白色 div。当我单击选项卡时,任何想法如何从 1 开始?

4

1 回答 1

1

这就是 slidesjs 计算不可见值的问题height: 0 width: 0

解决方案非常简单:您应该在没有document准备好事件时初始化 slidesjs,而是在用户实际单击选项卡并显示选项卡内容之后。

这就是我首先初始化可见的方式:

  $('.bc-slider .frames:visible')).slidesjs({
    width:      1024,
    height:     260,
    play:       {
      auto:   false,
      effect: "slide"
    },
    navigation: {
      effect: "slide",
      active: false
    },
    pagination: {
      active: false,
      effect: "slide"
    },
    effect:     {
      fade: {
        speed: 500
      }
    }
  });

这是显示隐藏滑块的代码:

content.eq(index).find('.frames').slidesjs({
  width:      1024,
  height:     260,
  play:       {
    auto:   false,
    effect: "slide"
  },
  navigation: {
    effect: "slide",
    active: false
  },
  pagination: {
    active: false,
    effect: "slide"
  },
  effect:     {
    fade: {
      speed: 500
    }
  }
});

content是一个事件局部变量,包含对正在显示的选项卡的引用。

于 2014-01-10T15:24:56.027 回答