【问题标题】:Animate Bootstrap carousel caption动画引导轮播标题
【发布时间】:2015-04-02 17:59:45
【问题描述】:

我想为 Twitters Bootstrap 轮播的标题设置动画。在标题中,我得到了一个 h1-Tag 和四个 h4-Tag。

我希望 h1 先淡入,然后再淡入 h4-Tags。在滑动到下一张图片之前,我想先淡出 h4-Tag,然后再淡出 h1-Tag。

我的 slider.js:

$('#carousel-example-generic').on('slide.bs.carousel', function () {
    $("h1").fadeIn(2000);
});

$('#carousel-example-generic').on('slid.bs.carousel', function () {
    $("h1").fadeOut(2000);
});

我的 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" role="listbox">
        <div class="item active">
            <img src="http://www.werkart-hannover.de/tl_files/images/projekte/neubau-einfamilienhaus-2.jpg" alt="...">
            <div class="carousel-caption">
                <h1>Here is a test title</h1>
                <h4>Test</h4>
                <h4>Test</h4>
                <h4>Test</h4>
                <h4>Test</h4>
            </div>
        </div>
        <div class="item">
            <img src="http://www.loth-haus.de/galerie/neubau_5232.jpg" alt="...">
            <div class="carousel-caption">
                <h1>Here is a test title</h1>
                <h4>Test</h4>
                <h4>Test</h4>
                <h4>Test</h4>
                <h4>Test</h4>
            </div>
        </div>
        <div class="item">
            <img src="http://www.loth-haus.de/galerie/neubau_5232.jpg" alt="...">
            <div class="carousel-caption">
                <h1>Here is a test title</h1>
                <h4>Test</h4>
                <h4>Test</h4>
                <h4>Test</h4>
                <h4>Test</h4>
            </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>

另一个问题是我的动画只适用于第二张幻灯片。 如何像我描述的那样为标题内的元素设置动画? 这是我的小提琴:http://jsfiddle.net/7fh3o32y/

【问题讨论】:

    标签: twitter-bootstrap carousel


    【解决方案1】:

    我遇到了同样的问题,终于找到了解决方案!

    我只是 Jquery 的初学者,所以我相信你可以清理一下。此外,最好使用您自己的 Carousal Structure,只需将 2 个类用于您想要动画的字幕。

    诀窍是使用 Animate.css 但您必须在动画字幕上禁用 Firefox 的 Ease 功能,否则会导致问题。

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

    更多动画效果:http://daneden.github.io/animate.css/

    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:

        <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:

        .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;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      • 2017-04-11
      • 2015-12-25
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多