Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can the Twitter Bootstrap Carousel plugin fade in and out on slide transition

I have a very basic implementation of the Twitter Bootstrap Carousel plugin on a site that I am working on (http://furnitureroadshow.com/). I was just wondering if anyone had extended the Carousel plugin so that it fades in and fades out on slide transition?

I found this issue #2050 on github.com (https://github.com/twitter/bootstrap/issues/2050) that seems to suggest that at this point, it isn't possible. Just wanted to see if it could be or has been done.

like image 762
generalopinion Avatar asked Mar 02 '12 01:03

generalopinion


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 I change bootstrap carousel transition?

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!

Why is Bootstrap Carousel not sliding?

In browsers where the Page Visibility API is supported, the carousel will avoid sliding when the webpage is not visible to the user (such as when the browser tab is inactive, the browser window is minimized, etc.).

Why do we use Bootstrap Carousel Plugin?

The Bootstrap carousel is a flexible, responsive way to add a slider to your site. In addition to being responsive, the content is flexible enough to allow images, iframes, videos, or just about any type of content that you might want.


2 Answers

Yes. Bootstrap uses CSS transitions so it can be done easily without any Javascript.

The CSS:

.carousel .item {-webkit-transition: opacity 3s; -moz-transition: opacity 3s; -ms-transition: opacity 3s; -o-transition: opacity 3s; transition: opacity 3s;} .carousel .active.left {left:0;opacity:0;z-index:2;} .carousel .next {left:0;opacity:1;z-index:1;} 

I noticed however that the transition end event was firing prematurely with the default interval of 5s and a fade transition of 3s. Bumping the carousel interval to 8s provides a nice effect.

Very smooth.

like image 81
StrangeElement Avatar answered Sep 27 '22 20:09

StrangeElement


Yes. Although I use the following code.

.carousel.fade {     opacity: 1;      .item     {         -moz-transition: opacity ease-in-out .7s;         -o-transition: opacity ease-in-out .7s;         -webkit-transition: opacity ease-in-out .7s;         transition: opacity ease-in-out .7s;         left: 0 !important;         opacity: 0;         top:0;         position:absolute;         width: 100%;         display:block !important;         z-index:1;         &:first-child{             top:auto;             position:relative;         }          &.active         {             opacity: 1;             -moz-transition: opacity ease-in-out .7s;             -o-transition: opacity ease-in-out .7s;             -webkit-transition: opacity ease-in-out .7s;             transition: opacity ease-in-out .7s;             z-index:2;         }     } } 

Then change the class on the carousel from "carousel slide" to "carousel fade". This works in safari, chrome, firefox, and IE 10. It will correctly downgrade in IE 9, however, the nice face effect doesn't happen.

Edit: Since this answer has gotten so popular I've added the following which rewritten as pure CSS instead of the above which was LESS:

.carousel.fade {   opacity: 1; } .carousel.fade .item {   -moz-transition: opacity ease-in-out .7s;   -o-transition: opacity ease-in-out .7s;   -webkit-transition: opacity ease-in-out .7s;   transition: opacity ease-in-out .7s;   left: 0 !important;   opacity: 0;   top:0;   position:absolute;   width: 100%;   display:block !important;   z-index:1; } .carousel.fade .item:first-child {   top:auto;   position:relative; } .carousel.fade .item.active {   opacity: 1;   -moz-transition: opacity ease-in-out .7s;   -o-transition: opacity ease-in-out .7s;   -webkit-transition: opacity ease-in-out .7s;   transition: opacity ease-in-out .7s;   z-index:2; } 
like image 43
Robert McKee Avatar answered Sep 27 '22 22:09

Robert McKee