Il codice sotto funziona quando tutte le immagini hanno ottenuto la stessa larghezza, altrimenti si può fare lo stesso, ma allora avete bisogno di calcolo più complessi per diapositiva.
Prima dare ad ogni immagine div.item
tre (precedente, corrente, successivo):
<div class="item active">
<img src="http://dummyimage.com/600x400/000/fff" alt="" />
<img src="http://dummyimage.com/600x400/ff0/fff" alt="" />
<img src="http://dummyimage.com/600x400/00ff00/fff" alt="" />
</div>
quindi utilizzare il seguente codice Meno:
@import "bootstrap-3.3.2/less/variables";
@image-width: 600px;
.item img {
max-width:100%;
&:first-child,&:last-child {
display: none;
}
}
/* Small devices (tablets, 768px and up) */
@media (min-width: @screen-sm-min) {
@rest: ((@screen-sm - (2 * @grid-gutter-width)) - @image-width);
.item img {
float:left;
&:first-child,&:last-child {
display: block;
}
width: @image-width;
}
.item.active {
overflow:hidden;
margin: 0 ((@image-width - (@rest/2)) * -1);
}
}
/* Medium devices (desktops, 992px and up) */
@media (min-width: @screen-md-min) {
@rest: ((@screen-md - (2 * @grid-gutter-width)) - @image-width);
.item img {
width: @image-width;
}
.item.active {
margin: 0 ((@image-width - (@rest/2)) * -1);
}
}
/* Large devices (large desktops, 1200px and up) */
@media (min-width: @screen-lg-min) {
@rest: ((@screen-lg - (2 * @grid-gutter-width)) - @image-width);
.item img {
width: @image-width;
}
.item.active {
margin: 0 ((@image-width - (@rest/2)) * -1);
}
}
In precedenza impostata @image-width
alla larghezza del dispositivo di scorrimento immagini. Il codice Meno precedente compila nel seguente codice CSS:
.item img {
max-width: 100%;
}
.item img:first-child,
.item img:last-child {
display: none;
}
/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) {
.item img {
float: left;
width: 600px;
}
.item img:first-child,
.item img:last-child {
display: block;
}
.item.active {
overflow: hidden;
margin: 0 -546px;
}
}
/* Medium devices (desktops, 992px and up) */
@media (min-width: 992px) {
.item img {
width: 600px;
}
.item.active {
margin: 0 -434px;
}
}
/* Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
.item img {
width: 600px;
}
.item.active {
margin: 0 -330px;
}
}
Demo:
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"/>
<style>
.item img {
max-width: 100%;
}
.item img:first-child,
.item img:last-child {
display: none;
}
/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) {
.item img {
float: left;
width: 600px;
}
.item img:first-child,
.item img:last-child {
display: block;
}
.item.active {
overflow: hidden;
margin: 0 -546px;
}
}
/* Medium devices (desktops, 992px and up) */
@media (min-width: 992px) {
.item img {
width: 600px;
}
.item.active {
margin: 0 -434px;
}
}
/* Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
.item img {
width: 600px;
}
.item.active {
margin: 0 -330px;
}
</style>
<div class="container"> \t
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li class="" data-target="#carousel-example-generic" data-slide-to="1"></li>
<li class="" data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<div class="carousel-inner" role="listbox">
<div class="item active">
\t \t \t <img src="http://dummyimage.com/600x400/000/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/ff0/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/00ff00/fff" alt="" />
</div>
<div class="item"> \t \t
\t \t \t <img src="http://dummyimage.com/600x400/ff0/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/00ff00/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/0000ff/fff" alt="" />
</div>
<div class="item">
\t \t \t <img src="http://dummyimage.com/600x400/00ff00/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/0000ff/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/000/fff" alt="" />
\t \t \t </div>
<div class="item">
\t \t \t <img src="http://dummyimage.com/600x400/0000ff/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/000/fff" alt="" />
\t \t \t <img src="http://dummyimage.com/600x400/ff0/fff" alt="" />
</div>
</div>
<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>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
fonte
2015-02-08 23:05:55