猫头鹰旋转木马v2,如果旋转木马背后的Tab内容,项目宽度计算错误

时间:2015-12-11 03:57:08

标签: tabs owl-carousel owl-carousel-2

我在一个看起来很完美的页面中构建了2个响应式Owl-carousel-v2。 在我将它们放入标签后,第一个旋转木马工作但是标签面板后面的一个丢失了它的项目宽度,我无法使其工作。 如果我有所有具有一定宽度的项目,则所有项目将垂直列出。

这是我的演示笔: http://codepen.io/bard/pen/NxqyQy/

我猜问题是在页面加载时计算项目宽度。

如何解决这个问题?

HTML:

<ul class="nav nav-tabs">
                    <li class="active"><a data-toggle="tab" href="#track1">Track1</a></li>
                    <li><a data-toggle="tab" href="#track2">Track2</a></li>
                </ul>
                <div class="panel tab-content">
                    <div id="track1" class="panel-body tab-pane fade in active">
    <div class="container-fluid tracker">
        <div class="wrapper-with-margin">
            <div id="owl-demo" class="owl-carousel">
                <div class="item" style="">1</div>
                <div class="item" style="">2</div>
                <div class="item" style="">3</div>
                <div class="item" style="">4</div>
                <div class="item" style="">5</div>
                <div class="item" style="">6</div>
                <div class="item" style="">7</div>
                <div class="item" style="">8</div>
                <div class="item" style="">9</div>
            </div>
        </div>
    </div>
                    </div>
                    <div id="track2" class="panel-body tab-pane fade">
    <div class="container-fluid tracker">
        <div class="wrapper-with-margin">
            <div id="owl-demo2" class="owl-carousel">
                <div class="item" style="">9</div>
                <div class="item" style="">8</div>
                <div class="item" style="">7</div>
                <div class="item" style="">6</div>
                <div class="item" style="">5</div>
                <div class="item" style="">4</div>
                <div class="item" style="">3</div>
                <div class="item" style="">2</div>
                <div class="item" style="">1</div>
            </div>
        </div>
    </div>
                    </div>
                </div>

2 个答案:

答案 0 :(得分:3)

你可以用一些CSS来解决这个问题。猫头鹰轮播在初始化时根据容器宽度调整项目大小。由于该div是隐藏的,因此没有宽度可供引用,这导致了一堆。你可以用css来纠正这个:

    .tab-content>.tab-pane {
    display: block;
    width: 100%;
    height: 0;
    padding: 0;
}

.active .tab-content>.tab-pane {
   height: auto;
   padding: 15px;
}

更新了笔:http://codepen.io/anon/pen/vLNNem

您也可以在用户点击第二个标签后更改您的javascript以初始化第二个轮播,但我可能只是以CSS的方式进行。

答案 1 :(得分:3)

问题在于选项卡切换'display:none'/'display:block'并且轮播不知道激活的选项卡内容的新宽度,这就是它看起来崩溃的原因;

要修复它,你可以使用不同的方法隐藏/显示标签,例如CSS中的这样,然后在jQuery中切换这些类:

.tab-hidden {
visibility: hidden;
height: 0;
overflow: hidden;
opacity: 0;
transition: all 0.5s ease;
}

.tab-visible {
visibility: visible;
height: auto;
overflow: visible;
opacity: 1;
transition: all 0.5s ease;
}

您可以在此处测试工作代码: http://codepen.io/slyka85/pen/MbpXxp