2014-02-26 23 views
1

我试图设置原生JavaScript动画的CSS。将会有几个图像进入一个600px的“窗口”。当一幅图像滑入或滑出时,唯一可见的部分将成为窗口内图像的一部分。在开始javascript动画之前,我已经尝试过多次尝试使用CSS来设置它,其中包括诸如overflow之类的东西:隐藏在旋转div上并将其设置为宽度,但这似乎不起作用。css溢出隐藏以显示定义的“窗口”内的图像div

#rotator { 
     width: 600px; 
     height: 320px; 
     background: #131313; 
     /*text-align: left;*/ 
     /*display: inline-block;*/ 
     overflow: hidden; 
     /*position: relative;*/ 
     /*float: left;*/ 

    } 
    .box_wrapper { 
     width: 450px; 
     /*position: absolute;*/ 
     display: inline-block; 
     /*overflow: hidden;*/ 
    } 
<div id="rotator"> 
    <div class="box_wrapper"> 
     <h4>Header1</h4> 
     <img src="../img/kat_3.jpg" /><br/> 
    </div> 

    <div class="box_wrapper box_2"> 
     <h4>Header2</h4> 
     <img src="../img/kat_2.jpg" /><br/> 
    </div> 
</div> 

这些图像要么完全显示,要么完全不符合css属性。

+0

你有没有尝试设置'溢出:对'#hidden' rotator' – DFord

+0

是,在我的代码显示 – natecraft1

+0

您的代码工作正常,我。 – slynagh

回答

0

您需要设置图像的宽度或高度,以便它们可以缩放到div中。

<style> 
    #rotator { 
    width: 600px; 
    height: 320px; 
    background: #131313; 
    overflow: hidden; 
    } 

    .box_wrapper { 
    width: 450px; 
    height: 100%; 
    display: inline-block; 
    } 
</style> 

$('.box_wrapper').each(function() { 
    var $el = $(this), $img = $el.find('img'), fixedRatio = 600/320, 
    ratio = $img.width()/$img.height(), 
    offset = $img.offset().top - $el.offset().top; 
    if (ratio > fixedRatio) { 
    $img.width($el.width()).height('auto'); 
    } else { 
    $img.height($el.height() - offset).width('auto'); 
    } 
}); 
+0

这对我不起作用......你能解释一下更多关于为什么这个想法可能工作并指向一些例子吗?也没有jQuery请 – natecraft1

+0

这个想法是限制图像的宽度/高度,例如如果图片的实际尺寸为1000px/800px,并且您需要将其显示在固定宽度为450px的块中,那么显然您可以在img标记上指定属性'宽度',以便整个图片可以显示,但尺寸较小。如果你知道这些图像的真实大小,你可以在服务器端生成带有'width'或'height'属性的img html代码,如果你不知道,可以通过js代码进行调整。 – ucdream