Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bootstrap 3 Carousel fading to new slide instead of sliding to new slide

I am using Bootstrap 3, unmodified.

Here's

<!-- Carousel ================================================== --> <div id="myCarousel" class="carousel slide">   <!-- Indicators -->   <ol class="carousel-indicators">     <li data-target="#myCarousel" data-slide-to="0" class="active"></li>     <li data-target="#myCarousel" data-slide-to="1"></li>   </ol>   <div class="carousel-inner">     <div class="item active carousel-1">       <div class="container">         <div class="carousel-caption">           <h1>Example headline.</h1>           <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>           <p><a class="btn btn-large btn-primary" href="#">Sign up today</a></p>         </div>       </div>     </div>     <div class="item carousel-2">       <div class="container">         <div class="carousel-caption">           <h1>Another example headline.</h1>           <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>           <p><a class="btn btn-large btn-primary" href="#">Learn more</a></p>         </div>       </div>     </div>    </div>   <a class="left carousel-control" href="#myCarousel" data-slide="prev"><span class="glyphicon glyphicon-chevron-left"></span></a>   <a class="right carousel-control" href="#myCarousel" data-slide="next"><span class="glyphicon glyphicon-chevron-right"></span></a> </div><!-- /.carousel --> 

default css from bootstrap 3:

.carousel {   position: relative; }  .carousel-inner {   position: relative;   width: 100%;   overflow: hidden; }  .carousel-inner > .item {   position: relative;   display: none;   -webkit-transition: 0.6s ease-in-out left;           transition: 0.6s ease-in-out left; }  .carousel-inner > .item > img, .carousel-inner > .item > a > img {   display: block;   height: auto;   max-width: 100%;   line-height: 1; }  .carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev {   display: block; }  .carousel-inner > .active {   left: 0; }  .carousel-inner > .next, .carousel-inner > .prev {   position: absolute;   top: 0;   width: 100%; }  .carousel-inner > .next {   left: 100%; }  .carousel-inner > .prev {   left: -100%; }  .carousel-inner > .next.left, .carousel-inner > .prev.right {   left: 0; }  .carousel-inner > .active.left {   left: -100%; }  .carousel-inner > .active.right {   left: 100%; }  .carousel-control {   position: absolute;   top: 0;   bottom: 0;   left: 0;   width: 15%;   font-size: 20px;   color: #ffffff;   text-align: center;   text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);   opacity: 0.5;   filter: alpha(opacity=50); }  .carousel-control.left {   background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));   background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%));   background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);   background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);   background-repeat: repeat-x;   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }  .carousel-control.right {   right: 0;   left: auto;   background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));   background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%));   background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);   background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);   background-repeat: repeat-x;   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }  .carousel-control:hover, .carousel-control:focus {   color: #ffffff;   text-decoration: none;   opacity: 0.9;   filter: alpha(opacity=90); }  .carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right {   position: absolute;   top: 50%;   left: 50%;   z-index: 5;   display: inline-block; }  .carousel-control .icon-prev, .carousel-control .icon-next {   width: 20px;   height: 20px;   margin-top: -10px;   margin-left: -10px;   font-family: serif; }  .carousel-control .icon-prev:before {   content: '\2039'; }  .carousel-control .icon-next:before {   content: '\203a'; }  .carousel-indicators {   position: absolute;   bottom: 10px;   left: 50%;   z-index: 15;   width: 60%;   padding-left: 0;   margin-left: -30%;   text-align: center;   list-style: none; }  .carousel-indicators li {   display: inline-block;   width: 10px;   height: 10px;   margin: 1px;   text-indent: -999px;   cursor: pointer;   border: 1px solid #ffffff;   border-radius: 10px; }  .carousel-indicators .active {   width: 12px;   height: 12px;   margin: 0;   background-color: #ffffff; }  .carousel-caption {   position: absolute;   right: 15%;   bottom: 20px;   left: 15%;   z-index: 10;   padding-top: 20px;   padding-bottom: 20px;   color: #ffffff;   text-align: center;   text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }  .carousel-caption .btn {   text-shadow: none; }  @media screen and (min-width: 768px) {   .carousel-control .icon-prev,   .carousel-control .icon-next {     width: 30px;     height: 30px;     margin-top: -15px;     margin-left: -15px;     font-size: 30px;   }   .carousel-caption {     right: 20%;     left: 20%;     padding-bottom: 30px;   }   .carousel-indicators {     bottom: 20px;   } } 

some css that I've added:

    .carousel {   height: 500px; } .carousel-inner {   height: 100%; }  .carousel-1 {   height: 100%;   background: url(../images/carousel1.jpg)  no-repeat center center fixed;   -webkit-background-size: cover;   background-size: cover; }  .carousel-2 {   height: 100%;   background: url(../images/carousel2.jpg)  no-repeat center center fixed;   -webkit-background-size: cover;   background-size: cover; } 

but I can't figure out how I can this carousel with fading effect. I tried to change opacity from 1 to 0, when active item, but it makes 2 animations, it slides left and changes opacity too..

Can you help me?

like image 280
user2606561 Avatar asked Aug 31 '13 13:08

user2606561


People also ask

How do I fade Bootstrap carousel?

Step 1: Add bootstrap CDN to your HTML code. Step 2: For making a bootstrap carousel you have to add class = “carousel” in your HTML div box. Step 3: To create the carousel fade in and fade out transition instead of a slider you have to add a class=”carousel-fade”.

How do you change the transition on carousel?

To do that, the only change we need to make to the HTML code is adding the class carousel-fade to the main carousel div. In our example it's the div with the ID element my-carousel . Next, we can just copy and paste the CSS code below and you will be good to go!

How do I stop the last slide on carousel?

To disable the carousel from "wrapping" there's an option. You can either set data-wrap="false" on the carousel or just put it in the options when you initialize the carousel.

How do I change the interval on Bootstrap carousel?

You can simply use the data-interval attribute of the carousel class. It's default value is set to data-interval="3000" i.e 3seconds. All you need to do is set it to your desired requirements.


1 Answers

The update from 3.2.x to 3.3.x broke some of the solutions explained here and on other threads because of the change: "Added transforms to improve carousel performance in modern browsers."

If you are using Bootstrap 3.3.x there's a solution here:
http://codepen.io/transportedman/pen/NPWRGq

Basically you need to add the "carousel-fade" class to your carousel so that you have:
<div class="carousel slide carousel-fade">

And then include the following CSS:

/*   Bootstrap Carousel Fade Transition (for Bootstrap 3.3.x)   CSS from:       http://codepen.io/transportedman/pen/NPWRGq   and:            http://stackoverflow.com/questions/18548731/bootstrap-3-carousel-fading-to-new-slide-instead-of-sliding-to-new-slide   Inspired from:  http://codepen.io/Rowno/pen/Afykb  */ .carousel-fade .carousel-inner .item {   opacity: 0;   transition-property: opacity; }  .carousel-fade .carousel-inner .active {   opacity: 1; }  .carousel-fade .carousel-inner .active.left, .carousel-fade .carousel-inner .active.right {   left: 0;   opacity: 0;   z-index: 1; }  .carousel-fade .carousel-inner .next.left, .carousel-fade .carousel-inner .prev.right {   opacity: 1; }  .carousel-fade .carousel-control {   z-index: 2; }  /*   WHAT IS NEW IN 3.3: "Added transforms to improve carousel performance in modern browsers."   Need to override the 3.3 new styles for modern browsers & apply opacity */ @media all and (transform-3d), (-webkit-transform-3d) {     .carousel-fade .carousel-inner > .item.next,     .carousel-fade .carousel-inner > .item.active.right {       opacity: 0;       -webkit-transform: translate3d(0, 0, 0);               transform: translate3d(0, 0, 0);     }     .carousel-fade .carousel-inner > .item.prev,     .carousel-fade .carousel-inner > .item.active.left {       opacity: 0;       -webkit-transform: translate3d(0, 0, 0);               transform: translate3d(0, 0, 0);     }     .carousel-fade .carousel-inner > .item.next.left,     .carousel-fade .carousel-inner > .item.prev.right,     .carousel-fade .carousel-inner > .item.active {       opacity: 1;       -webkit-transform: translate3d(0, 0, 0);               transform: translate3d(0, 0, 0);     } } 
like image 158
gerardnll Avatar answered Oct 01 '22 12:10

gerardnll