使用 CSS3 实现 3D 图片滑块效果

Slicebox – A fresh 3D image slider with graceful fallback

英文原文地址:http://tympanus.NET/codrops/2011/09/05/slicebox-3d-image-slider/

项目地址:https://github.com/codrops/Slicebox

demo地址:http://tympanus.net/Development/Slicebox/index.html

使用 CSS3 的3D变换特性,我们可以通过让元素在三维空间中变换来实现一些新奇的效果。 这篇文章分享的这款 jQuery 立体图片滑块插件,利用了 3D transforms(变换)属性来实现多种不同的效果。

  实现的基本思路是创建三维图像切片,作为三维物体的另一侧,旋转并显示下一个图像。若浏览器不支持3D变换,一个简单的滑块将作为后备方案。要调用这个插件,首先把图片放在无序列表中,然后添加 CSS 类——"sb-slider" 即可,下面是 HTML 代码示例:

<ul  class="sb-slider">  
   
    <li>  
        <a href="#" target="_blank">  
            <img src="images/1.jpg" alt="image1"/>  
        </a>  
        <div class="sb-description">  
            <h3>Creative Lifesaver</h3>  
        </div>  
    </li>  
   
    <li>  
        <img src="images/2.jpg" alt="image2"/>  
        <div class="sb-description">  
            <h3>...</h3>  
        </div>  
    </li>  
   
    <li><!-- ... --></li>  
       
    <!-- ... -->  
       
</ul>  

另外也还可以使用带有 class 为 “sb-description” 的DIV来为图片添加描述。如本例所示,您还可以在图像周围添加锚点。然后调用插件就可以了:

$('#sb-slider').slicebox();  

Slicebox 配备了一组选项,你可以调整以实现不同类型的效果,各个选项和作用如

$.Slicebox.defaults = {  
    // 方向(v)ertical, (h)orizontal or (r)andom  
    orientation : 'v',  
    // 元素距离视图的距离,以像素计  
    perspective : 1200,  
    // 切片,长方体的数量  
    cuboidsCount : 5,  
    // 是否随机  
    cuboidsRandom : false,  
    // 长方体最大数量  
    maxCuboidsCount : 5,  
    disperseFactor : 0,  
    // 隐藏滑块的颜色  
    colorHiddenSides : '#',  
    sequentialFactor : 150,  
    // 动画速度  
    speed : 600,  
    // 过渡效果  
    easing : 'ease',  
    // 自动播放  
    autoplay : false,  
    // 旋转间隔  
    interval: 3,  
    // 淡入淡出速度  
    fallbackFadeSpeed : 300,  
    // 回调函数  
    onBeforeChange : function( position ) { return false; },  
    onAfterChange : function( position ) { return false; }  
};