简体   繁体   English

动画字幕Bootstrap 3传送带

[英]Animate the caption Bootstrap 3 carousel

I'm looking for a good way to animate the caption of a Bootstrap 3 carousel. 我正在寻找一种动画制作Bootstrap 3轮播字幕的好方法。 I have found this post Bootstrap carousel-caption animation . 我发现了这篇Bootstrap轮播字幕动画

Sadly it doesn't work as it is working in the fiddle. 可悲的是,它无法正常工作,因为它只能在小提琴中工作。 At my page, the animation is not really an animation. 在我的页面上,动画实际上不是动画。 The caption pops in and is not flying in. Also the animation only works one time per image. 字幕会弹出而不会飞入。动画每个图像只能播放一次。 Therefor on a second round through the carousel, the captions are not showing anymore. 因此,在轮播的第二轮中,字幕不再显示。

My CSS is: 我的CSS是:

.carousel-caption {
    z-index: 0;
    font-size:24px;
    right: 0;
    bottom: 0;
    left: 0;
    top: 0;
    padding-bottom: 30px;
    padding-top:25%;
    height: 100% !important;
    background:rgba(0, 0, 0, 0.25);   
    display: none;
}

My JS: 我的JS:

var carouselContainer = $('.carousel');
    var slideInterval = 5000;

    function toggleCaption() {
        $('.carousel-caption').hide();
        var caption = carouselContainer.find('.active').find('.carousel-caption');
        caption.delay(500).toggle("slide", {direction:'right'});
    }


    carouselContainer.carousel({
        interval: slideInterval,
        cycle: true,
        pause: "hover"
    }).on('slid.bs.carousel', function() {
        toggleCaption();
    });

You can see the site here 你可以在这里看到网站

I had the same issue and finally got a solution! 我遇到了同样的问题,终于找到了解决方案!

I am only a beginner with Jquery, so I'm sure you can clean that bit up. 我只是Jquery的初学者,所以我确定您可以清理一下。 Also, probably best to use your own Carousal Structure and just use the 2 classes for the captions you want to animate. 此外,可能最好使用自己的Carousal Structure,并仅将2类用于要设置动画的字幕。

The trick is the use Animate.css but you have to disable the Ease function for Firefox on the animated captions, otherwise it causes issues. 诀窍是使用Animate.css,但您必须在动画字幕上禁用Firefox的Ease功能,否则会引起问题。

Fiddle Here: http://jsfiddle.net/z6xq12bh/4/ 在这里提琴: http : //jsfiddle.net/z6xq12bh/4/

For more animation effects: http://daneden.github.io/animate.css/ 有关更多动画效果: http : //daneden.github.io/animate.css/

HTML: HTML:

    <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>
        <li data-target="#carousel-example-generic" data-slide-to="2"></li>
      </ol>

      <!-- Wrapper for slides -->
      <div class="carousel-inner">
        <div class="item active">
          <img src="http://placehold.it/1200x400" alt="...">
          <div class="carousel-caption">
              <h3 class="toggleHeading">Caption Text</h3>
              <p class="toggleCaption">This is some text<p>
          </div>
        </div>
        <div class="item">
          <img src="http://placehold.it/1200x400" alt="...">
          <div class="carousel-caption">
              <h3 class="toggleHeading">Caption Text 2</h3>
               <p class="toggleCaption">This is some text<p>
          </div>
        </div>
        <div class="item">
          <img src="http://placehold.it/1200x400" alt="...">
          <div class="carousel-caption">
              <h3 class="toggleHeading">Caption Text 3</h3>
               <p class="toggleCaption">This is some text<p>
          </div>
        </div>
      </div>

      <!-- Controls -->
      <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left"></span>
      </a>
      <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right"></span>
      </a>
    </div> <!-- Carousel -->

JS: JS:

    <script>
    var carouselContainer = $('.carousel');
    var slideInterval = 5000;

        function toggleH(){
            $('.toggleHeading').hide()
            var caption = carouselContainer.find('.active').find('.toggleHeading').addClass('animated fadeInRight').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend',
                function (){
                $(this).removeClass('animated fadeInRight')});
        caption.slideToggle();
        }

        function toggleC(){
            $('.toggleCaption').hide()
            var caption = carouselContainer.find('.active').find('.toggleCaption').addClass('animated fadeInUp').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend',
                function (){
                $(this).removeClass('animated fadeInUp')
        });
        caption.slideToggle();
        }
    carouselContainer.carousel({
    interval: slideInterval, cycle: true, pause: "hover"})
    .on('slide.bs.carousel slid.bs.carousel', toggleH).trigger('slide.bs.carousel')
    .on('slide.bs.carousel slid.bs.carousel', toggleC).trigger('slide.bs.carousel');
     </script>

CSS: CSS:

    .toggleHeading {
        animation-delay: 0.5s;
      -webkit-animation-delay: 0.5s;
         -moz-animation-delay: 0.5s;
           -o-animation-delay: 0.5s;
           -moz-transition: none !important;
    }

    .toggleCaption {
        animation-delay: 1.5s;
      -webkit-animation-delay: 1.5s;
         -moz-animation-delay: 1.5s;
           -o-animation-delay: 1.5s;
           -moz-transition: none !important;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM