SliceBox

 

SliceBox相当于一个轮播图插件,只不过是3D的。 先来查看它能实现的效果:

 

官网:http://tympanus.net/codrops/2011/09/05/slicebox-3d-image-slider/

兼容性:由于该插件使用到了CSS3中的变换变形等属性,所以在不支持CSS3的浏览器中看不到3D效果,

    但是图片切换的时候会是前一张图片淡入后一张图片淡出的效果,不支持ie6,在ie6+的版本中基本上

    看不到3D效果,ie7 8 9 都是淡入淡出效果,在ie10中效果更糟,虽然有3D效果,但是效果非常蛋疼,

    出现3D效果的时候看不到图片了。

 

Demo

需要的js和css文件

        <link type="text/css" rel="stylesheet" href="css/slicebox.css" />
        <script type="text/javascript" src="js/modernizr.js"></script>
        <script type="text/javascript" src="js/jquery8.js"></script>
        <script type="text/javascript" src="js/jquery.slicebox.js"></script>
modernizr.js是用以探测浏览器对HTML5和CSS3新特性功能的支持。
参考:http://huangyang.me/modernizr.html
SliceBox用到了它进行浏览器兼容性的检查。


全部示例代码

<!DOCTYPE html>
<html  class="no-js" lang="zh">
    <head>
        <meta charset="utf-8" />
        <title> </title>
        <link type="text/css" rel="stylesheet" href="css/slicebox.css" />
        <script type="text/javascript" src="js/modernizr.js"></script>
        <script type="text/javascript" src="js/jquery8.js"></script>
        <script type="text/javascript" src="js/jquery.slicebox.js"></script>
        <script type="text/javascript">
            var $slicebox;
            $(function() {
                $slicebox = $('#sb-slider').slicebox({
                    interval:6000,
                    orientation : "r", //表示幻灯片的切换方向,可取 (v)垂直方向, (h)水平方向 or (r)随机方向
                    perspective : 800, //透视点距离,可以通过改变其值查看效果
                    cuboidsCount : 5, //幻灯片横向或纵向被切割的块数,切割的每一块将会以3D的形式切换
                    cuboidsRandom : true, //是否随机 cuboidsCount 参数的值
                    maxCuboidsCount : 5, //设置一个值用来规定最大的 cuboidsCount 值
                    colorHiddenSides : "#333", //隐藏的幻灯片的颜色
                    sequentialFactor : 150, //幻灯片切换时间(毫秒数)
                    speed : 600, //每一块3D立方体的速度
                    autoplay : true, //是否自动开始切换
                    onBeforeChange : function(position) {
                        return false;
                    },
                    onAfterChange : function(position) {
                        return false;
                    }
                });
            });
        </script>
        <style type="text/css">
        </style>
    </head>
    <body>
        <ul id="sb-slider" class="sb-slider">
            <li>
                <img src="images/1.jpg" alt="image1"/>
            </li>
            <li>
                <img src="images/2.jpg" alt="image2"/>
            </li>
            <li>
                <img src="images/3.jpg" alt="image2"/>
            </li>
            <li>
                <img src="images/4.jpg" alt="image2"/>
            </li>
            <li>
                <img src="images/5.jpg" alt="image2"/>
            </li>
        </ul>
        <div>
            <span onclick="$slicebox.previous();">上一页</span>
            <span onclick="$slicebox.next();">下一页</span>
            <span onclick="$slicebox.jump(4);">跳页</span>
        </div>
    </body>
</html>

 

属性介绍:

 interval:6000,//自动播放的时候每个多少毫秒播放下一个图片
 orientation : "r", //表示幻灯片的切换方向,可取 (v)垂直方向, (h)水平方向 or (r)随机方向
 perspective : 800, //透视点距离,可以通过改变其值查看效果(相当一你的眼睛离图片的距离)
 cuboidsCount : 5, //幻灯片横向或纵向被切割的块数,切割的每一块将会以3D的形式切换
 cuboidsRandom : true, //是否随机 cuboidsCount 参数的值(切换图片的时候图片被切割的个数是随机的)
 maxCuboidsCount : 5, //设置一个值用来规定最大的 cuboidsCount 值
 disperseFactor : 50,//被切割的时候每个块分开的像素距离,默认是0
colorHiddenSides :
"#333", //隐藏的幻灯片的颜色(被切割块侧面的颜色) sequentialFactor : 150, //幻灯片切换时间(毫秒数) speed : 600, //每一块3D立方体的速度 easing : 'ease', //切换效果
autoplay :
true, //是否自动开始切换(如果设置为false,特通过play方法开始播放图片) onBeforeChange : function(position) {},//改变前 onAfterChange : function(position) {}//改变后 //通过改变前改变后可以修改上面的文字说明
 

方法介绍:

我没从官网上找到SliceBox可调用的方法,不过我从firebug和官网demo中找到了点。下面是firebug中查看到的效果:

以下划线 '_' 开头应该是私有方法(其实我也不确定,貌似在javascript设计模式上看过这样的设计),私有方法不建议调用,但是既然设计者

故意暴露出来了,没有故意隐藏,说明还是可以调用的,这里不讨论这些私有方法作用(因为我没有实验)。

next();  //播放下一章张图片

previous(); //播放上一章张图片

play(); // 开始播放(当属性设置为不自动播放的时候,可以通过该方法开始播放)

pause(); // 暂停播放

jump(index); // 跳到哪一张图片

上面的方法我测试过,用法上应该没问题。

下面的方法我没用过,不过我猜测了一下,等到镇长用上了再测试一下吧。

add();  应该是增加一张图片到当前播放的队列中

destory(); 应该是销毁slicebox对象

isActive(); 应该是判断当前图片是否正在切换

 

本文示例链接:http://url.cn/VZ9hAN或http://share.weiyun.com/bf8327c876bedb4ba84eb97cffdff8f4

        

posted @ 2013-09-27 21:16  子夏子  阅读(1242)  评论(1编辑  收藏  举报
yokoboy