Bootstrap Carousel - 动画和边距问题

Posted

技术标签:

【中文标题】Bootstrap Carousel - 动画和边距问题【英文标题】:Bootstrap Carousel - issues with animation and margin 【发布时间】:2015-01-27 22:12:55 【问题描述】:

我正在使用 Bootstrap 3.2.0。在 2.3.2 版本上一切正常,但在更新到 3.2.0 后,我的轮播开始出现异常。

我注意到两个问题:

动画不工作(文本应该像代码中一样从顶部平滑移动) margin-top 在第一个 .item 上是好的(元素在中间)但在最后两个 .items 它更接近 div 的底部

我的代码在这里:http://jsfiddle.net/crvfn2nL/2/

JS

jQuery(function($) 

    //#main-slider
    $(function()
        $('#image-slider.carousel').carousel(
            interval: 8000
        );
    );

    $( '.centered' ).each(function( e ) 
        $(this).css('margin-top',  ($('.item').height() - $(this).height())/2);
    );

    $(window).resize(function()
        $( '.centered' ).each(function( e ) 
            $(this).css('margin-top',  ($('.item').height() - $(this).height())/2);
        );
    );
);

CSS

 #image-slider #carousel, #image-slider #carousel .carousel-inner 
    width:100%;
    margin:0 auto;
    text-align:center;
    min-height:100%;


#image-slider #carousel, #image-slider #carousel .carousel-inner .item 
width:100%;
height:100%;
min-height:100%;
 background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  height:400px;


.item-nr-1 
    background:url('http://ibin.co/1iuR0HvTp3aU');


.item-nr-2 
    background:url('http://ibin.co/1iuRE1en7Wdm');


.item-nr-3 
    background:url('http://ibin.co/1iuRPP1uYfye');


#image-slider #carousel h2 
  font-size: 36px;



#image-slider .carousel .carousel-inner .active .animation.animated-item-1 
  -webkit-animation: fadeInUp 300ms linear 300ms both;
  -moz-animation: fadeInUp 300ms linear 300ms both;
  -o-animation: fadeInUp 300ms linear 300ms both;
  -ms-animation: fadeInUp 300ms linear 300ms both;
  animation: fadeInUp 300ms linear 300ms both;

#image-slider .carousel .carousel-inner .active .animation.animated-item-2 
  -webkit-animation: fadeInUp 300ms linear 600ms both;
  -moz-animation: fadeInUp 300ms linear 600ms both;
  -o-animation: fadeInUp 300ms linear 600ms both;
  -ms-animation: fadeInUp 300ms linear 600ms both;
  animation: fadeInUp 300ms linear 600ms both;

#image-slider .carousel .carousel-inner .active .animation.animated-item-3 
  -webkit-animation: fadeInUp 300ms linear 900ms both;
  -moz-animation: fadeInUp 300ms linear 900ms both;
  -o-animation: fadeInUp 300ms linear 900ms both;
  -ms-animation: fadeInUp 300ms linear 900ms both;
  animation: fadeInUp 300ms linear 900ms both;

#image-slider .carousel .carousel-inner .active .animation.animated-item-4 
  -webkit-animation: fadeInUp 300ms linear 1200ms both;
  -moz-animation: fadeInUp 300ms linear 1200ms both;
  -o-animation: fadeInUp 300ms linear 1200ms both;
  -ms-animation: fadeInUp 300ms linear 1200ms both;
  animation: fadeInUp 300ms linear 1200ms both;


#image-slider 
    margin-top:80px;    

为什么会这样?

谢谢

【问题讨论】:

【参考方案1】:

试试这个...

	$( '.centered' ).each(function( e ) 
		$(this).css('margin-top',  ($('.item').height())/2-$('.centered').height()/1.5);
	);

	$(window).resize(function()
		$( '.centered' ).each(function( e ) 
			$(this).css('margin-top',  ($('.item').height())/2-$('.centered').height()/1.5);
		);
	);

之前的 margin-top 值随着轮播中的图像而变化。 不要将两个高度的减法除以 2,而是用不同的值分别除。 希望这会有所帮助。

【讨论】:

以上是关于Bootstrap Carousel - 动画和边距问题的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap Carousel 过渡项目 + animate.css

jquery的一些动画插件

单击右/左控件后如何防止Bootstrap轮播恢复幻灯片动画

Bootstrap 轮播(Carousel)插件

bootstrap图片轮播插件carousel

Bootstrap 轮播(Carousel)插件