2015-11-03 32 views
1

我一直在试图修改引导3.3.5旋转木马有多个图像显示的不是标准的单一形象。该方法涉及覆盖幻灯片操作的股票translate3d变换值,以使其在图像之间移动时一次只能前进一个。我使用了自定义的this post中的变换覆盖。这是我的基本设置的pen引导转盘translate3d覆盖不工作的火狐,IE

,直到我尝试在Firefox(和IE)这一切工作正常。 translate3d效果完全不起作用。从我读过translate3d约firefox's implementation它应该工作(v41.0.2)。我原本以为FF不喜欢百分比,但我刚刚提到的链接只说没有tz值的百分比。所以我不知道为什么它不起作用。

我在这所以我猜有人大规模的小白将只是看一眼它,吹我的心,但我真的很想知道之前我移动到其他的方法,为什么它的发生。

我明白任何输入,如果你有时间,谢谢。

这里是我的代码(codepen版本的作品应该的方式,但这里的嵌入代码段不确实因为某些原因)

var mod_screen = function() { 
 
    
 
    /* Cleanup extra divs that were added in previous resizing */ 
 
    $('.item').each(function(){ 
 
     $(this).children('div:not(:first)').remove(); 
 
    }); 
 
    
 
    $('.carousel .item').each(function(){ 
 
     
 
     var next = $(this).next(), i; 
 
     
 
      
 
     if (Modernizr.mq('(min-width: 768px) and (max-width: 991px)')) { 
 
     
 
      /* Small screen sizes */ 
 
      if (!next.length) { 
 
       next = $(this).siblings(':first'); 
 
      } 
 
      next.children(':first-child').clone().appendTo($(this)); 
 

 
     } else if (Modernizr.mq('(min-width: 992px) and (max-width: 1199px)')) { 
 
     
 
      /* Medium screen sizes */ 
 
      if (!next.length) { 
 
       next = $(this).siblings(':first'); 
 
      } 
 
      next.children(':first-child').clone().appendTo($(this)); 
 

 
      for (i=0;i<1;i++) { 
 
       next=next.next(); 
 
       if (!next.length) { 
 
        next = $(this).siblings(':first'); 
 
       } 
 
       next.children(':first-child').clone().appendTo($(this)); 
 
      } 
 
      
 
     } else if (Modernizr.mq('(min-width: 1200px)')) { 
 
     
 
      /* Large screen sizes */ 
 
      if (!next.length) { 
 
       next = $(this).siblings(':first'); 
 
      } 
 
      next.children(':first-child').clone().appendTo($(this)); 
 

 
      for (i=0;i<2;i++) { 
 
       next=next.next(); 
 
       if (!next.length) { 
 
        next = $(this).siblings(':first'); 
 
       } 
 
       next.children(':first-child').clone().appendTo($(this)); 
 
      } 
 
     } 
 
    }); 
 
} 
 

 
$(function() { 
 
// Call on every window resize 
 
$(window).resize(mod_screen); 
 
// Call once on initial load 
 
mod_screen(); 
 
});
@media screen and (min-width: 768px) and (max-width: 991px) { 
 
    
 
    .carousel-inner .active.left { left: -50%; } 
 
    .carousel-inner .next  { left: 50%; } 
 

 
    .carousel-inner > .item.next, 
 
    .carousel-inner > .item.active.right { 
 
     left: 0; 
 
     transform: translate3d(50%, 0, 0); 
 
    -webkit-transform: translate3d(50%, 0, 0); 
 
    } 
 

 
    .carousel-inner > .item.prev, 
 
    .carousel-inner > .item.active.left { 
 
     left: 0; 
 
     transform: translate3d(-50%, 0, 0); 
 
    -webkit-transform: translate3d(-50%, 0, 0); 
 
    } 
 
} 
 

 
@media screen and (min-width: 992px) and (max-width: 1199px) { 
 
    .carousel-inner .active.left { left: -33.3333%; } 
 
    .carousel-inner .next  { left: 33.3333%; } 
 

 
    .carousel-inner > .item.next, 
 
    .carousel-inner > .item.active.right { 
 
     left: 0; 
 
     transform: translate3d(33.3333%, 0, 0); 
 
    -webkit-transform: translate3d(33.3333%, 0, 0); 
 
    } 
 

 
    .carousel-inner > .item.prev, 
 
    .carousel-inner > .item.active.left { 
 
     left: 0; 
 
     transform: translate3d(-33.3333%, 0, 0); 
 
    -webkit-transform: translate3d(-33.3333%, 0, 0); 
 
    } 
 
} 
 

 
@media screen and (min-width: 1200px) { 
 
    .carousel-inner .active.left { left: -25%; } 
 
    .carousel-inner .next  { left: 25%; } 
 

 
    .carousel-inner > .item.next, 
 
    .carousel-inner > .item.active.right { 
 
     left: 0; 
 
     transform: translate3d(25%, 0, 0); 
 
    -webkit-transform: translate3d(25%, 0, 0); 
 
    } 
 

 
    .carousel-inner > .item.prev, 
 
    .carousel-inner > .item.active.left { 
 
     left: 0; 
 
     transform: translate3d(-25%, 0, 0); 
 
    -webkit-transform: translate3d(-25%, 0, 0); 
 
    } 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 

 
<div class="container-fluid"> 
 
    <div class="row carousel slide" id="index-carousel-lg"> 
 
     <div class="carousel-inner"> 
 
      <div class="item active"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=01" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
      <div class="item"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=02" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
      <div class="item"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=03" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
      <div class="item"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=04" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
      <div class="item"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=05" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
      <div class="item"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=06" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
      <div class="item"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=07" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
      <div class="item"> 
 
       <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 
 
        <a href="#"><img src="http://placehold.it/475x150&text=08" class="img-responsive"></a> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    <a class="left carousel-control" href="#index-carousel-lg" data-slide="prev"><i class="glyphicon glyphicon-chevron-left"></i></a> 
 
    <a class="right carousel-control" href="#index-carousel-lg" data-slide="next"><i class="glyphicon glyphicon-chevron-right"></i></a> 
 
    </div> 
 
</div>

回答

1

所以,我不过我解决了问题我不完全确定它为什么会发生。我已经添加了三个独立的媒体查询不包括transform: translate3D和我已经改变了现有的媒体查询检查变换的3D支持。没有改变标记,也没有改变Javascript。现在看来Firefox和IE都很满意。就像我说的,我不知道为什么FF在文档中说它不支持我的代码中的translate3D。如果任何人都可以启发我为什么它不起作用,我会很感激。下面是更新pen

@media all and (min-width: 768px) and (max-width: 991px) { 
 
    .carousel-inner > .next { left: 50%; } 
 
    .carousel-inner > .prev { left: -50%; } 
 
    .carousel-inner > .active.left { left: -50%; } 
 
    .carousel-inner > .active.right { left: 50%; } 
 
} 
 
@media all and (min-width: 992px) and (max-width: 1199px) { 
 
    .carousel-inner > .next { left: 33.3333%; } 
 
    .carousel-inner > .prev { left: -33.3333%; } 
 
    .carousel-inner > .active.left { left: -33.3333%; } 
 
    .carousel-inner > .active.right { left: 33.3333%; } 
 
} 
 
@media all and (min-width: 1200px) { 
 
    .carousel-inner > .next { left: 25%; } 
 
    .carousel-inner > .prev { left: -25%; } 
 
    .carousel-inner > .active.left { left: -25%; } 
 
    .carousel-inner > .active.right { left: 25%; } 
 
} 
 

 
@media all and (min-width: 768px) and (max-width: 991px) and ((transform-3d), (-webkit-transform-3d)) { 
 
    
 
    .carousel-inner > .item.next, 
 
    .carousel-inner > .item.active.right { 
 
     left: 0; 
 
     transform: translate3d(50%, 0, 0); 
 
     -webkit-transform: translate3d(50%, 0, 0); 
 
    } 
 

 
    .carousel-inner > .item.prev, 
 
    .carousel-inner > .item.active.left { 
 
     left: 0; 
 
     transform: translate3d(-50%, 0, 0); 
 
     -webkit-transform: translate3d(-50%, 0, 0); 
 
    } 
 
} 
 

 
@media all and (min-width: 992px) and (max-width: 1199px) and ((transform-3d), (-webkit-transform-3d)) { 
 

 
    .carousel-inner > .item.next, 
 
    .carousel-inner > .item.active.right { 
 
     left: 0; 
 
     transform: translate3d(33.3333%, 0, 0); 
 
     -webkit-transform: translate3d(33.3333%, 0, 0); 
 
    } 
 

 
    .carousel-inner > .item.prev, 
 
    .carousel-inner > .item.active.left { 
 
     left: 0; 
 
     transform: translate3d(-33.3333%, 0, 0); 
 
     -webkit-transform: translate3d(-33.3333%, 0, 0); 
 
    } 
 
} 
 

 
@media all and (min-width: 1200px) and ((transform-3d), (-webkit-transform-3d)) { 
 

 
    .carousel-inner > .item.next, 
 
    .carousel-inner > .item.active.right { 
 
     left: 0; 
 
     transform: translate3d(25%, 0, 0); 
 
     -webkit-transform: translate3d(25%, 0, 0); 
 
    } 
 

 
    .carousel-inner > .item.prev, 
 
    .carousel-inner > .item.active.left { 
 
     left: 0; 
 
     transform: translate3d(-25%, 0, 0); 
 
     -webkit-transform: translate3d(-25%, 0, 0); 
 
    } 
 
}