我正在尝试修改 twitter引导轮播,以便项目不是从侧面直接滑入,而是斜向滑入。
它使用 css3 转换完成,因此大概是通过在 bootstrap 已经定义的左右转换之外添加顶部或底部转换,那么这应该是可以实现的。我似乎无法让它工作。这是我到目前为止所拥有的:
.item.next.left {
top: 50px;
}
.item.left {
top: 0px;
-moz-transition: top 0.6s ease-in-out 0s, left 0.6s ease-in-out 0s;
}
.item.active {
top: 50px;
position: relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="http://placehold.it/1500X500" alt="...">
<div class="carousel-caption">
...
</div>
</div>
<div class="item">
<img src="http://placehold.it/1500X500" alt="...">
<div class="carousel-caption">
...
</div>
</div>
...
</div>
<!-- Controls -->
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
这种做我想要的,因为过渡是从右上角开始的,但它并不理想,因为幻灯片从它应该在的位置向下完成 50px。理想情况下,它应该开始更高并在正确的位置结束。当我点击下一个时,我需要它从右下角到左上角进入。任何人都知道如何实现这一目标?
更新:
好的,我很幸运,因为我可以使用以下代码从右下角进入下一个转换:
.carousel-inner > .item { top:47px; }
.carousel-inner > .item.active { top:0; }
.carousel-inner > .next.left { top:0px; -moz-transition:top 0.6s ease-in-out 0s, left 0.6s ease-in-out 0s; }
我可以使用以下代码从左上角进入上一个过渡:
.carousel-inner > .item { top:-47px; }
.carousel-inner > .item.active.right { top:0; }
.carousel-inner > .prev.right { top:0px; -moz-transition:top 0.6s ease-in-out 0s, left 0.6s ease-in-out 0s; }
因此,如果可能的话,我需要以某种方式将两者结合起来。但是,由于它们都依赖于为 .carousel-inner > .item 设置的不同的最高值,我不知道是否有办法解决这个问题