首页 > 特效插件 > 滚动轮播 >  左右拖拽旋转展示3D万花筒jQuery特效正文

左右拖拽旋转展示3D万花筒jQuery特效

特效介绍


基于jQuery和HTML5的左右拖拽旋转展示的3D万花筒效果的jQuery插件,除左右拖拽外,上下也能拖拽,每张图片都有倒影效果,上下拖拽时,光晕也会跟着变化,非常逼真。如果快速拖动并松开,还会自动旋转一会才停下的效果。这个比较适合展示展品图片,还可以给每张图片加上点击效果。
使用方法
1、在head区域加入css:
<style type="text/css">
    *{margin:0;padding: 0;}
    .pic{
        width: 120px;
        height: 180px;
        margin: 150px auto 0;
        position: relative;
        /*transform 旋转元素*/
        transform-style:preserve-3d;
        transform:perspective(800px) rotateX(-10deg) rotateY(0deg);
    }
    body{background-color: #66677c;overflow:hidden;}

    .pic img{
        position: absolute;
        width: 100%;
        height: 100%;
        border-radius: 5px;
        box-shadow: 0px 0px 10px #fff;
        /*倒影的设置*/
        -webkit-box-reflect:below 10px -webkit-linear-gradient(top,rgba(0,0,0,0) 50%,rgba(0,0,0,.5) 100%);
    }
    .pic p{
        width: 1200px;
        height: 1200px;
        background: -webkit-radial-gradient(center center,600px 600px,rgba(255,255,255,.5),rgba(0,0,0,0));
        position: absolute;
        top:100%;left:50%;
        margin-top: -600px;
        margin-left: -600px;
        border-radius:600px;
        transform:rotateX(90deg);
    }
</style>
2、在需要展示的地方加入html
<div class="pic">
    <img src="img/1.jpg"/>
    <img src="img/2.jpg" />
    <img src="img/3.jpg"/>
    <img src="img/4.jpg"/>
    <img src="img/5.jpg"/>
    <img src="img/6.jpg"/>
    <img src="img/7.jpg"/>
    <img src="img/8.jpg"/>
    <img src="img/9.jpg"/>
    <img src="img/10.jpg"/>
    <p></p>
</div>
3、引入jQuery库,同时加入js:
<script src="http://www.5imoban.net/download/jquery/jquery.1.11.3.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
    var imgL=$(".pic img").size();
    var deg=360/imgL;
    var roY=0,roX=-10;
    var xN=0,yN=0;
    var play=null;

    $(".pic img").each(function(i){
        $(this).css({
            //translateZ 定义2d旋转沿着z轴
            "transform":"rotateY("+i*deg+"deg) translateZ(300px)"
        });
        //防止图片被拖拽
        $(this).attr('ondragstart','return false');
    });

    $(document).mousedown(function(ev){
        var x_=ev.clientX;
        var y_=ev.clientY;
        clearInterval(play);
        $(this).bind('mousemove',function(ev){
            /*获取当前鼠标的坐标*/
            var x=ev.clientX;
            var y=ev.clientY;
            /*两次坐标之间的距离*/
            xN=x-x_;
            yN=y-y_;

            roY+=xN*0.2;
            roX-=yN*0.1;
            $('.pic').css({
                 transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'
            });
            /*之前的鼠标坐标*/
            x_=ev.clientX;
            y_=ev.clientY;
        });
    }).mouseup(function(){
        $(this).unbind('mousemove');
        var play=setInterval(function(){
            xN*=0.95;
            yN*=0.95
            if(Math.abs(xN)<1 && Math.abs(yN)<1){
                clearInterval(play);
            }
            roY+=xN*0.2;
            roX-=yN*0.1;
            $('.pic').css({
                transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'
            });
        },30);
    });

});
</script>

下载 提取码/密码:jkid(点击复制密码) 预览