jquery3d轮播插件

jquery 旋转木马 banner切换 github源码下载地址

实现原理

利用 css3 来实现动画
当切换下一个元素(项目中的 li)时,所有元素使用它前一个元素的样式,第一个元素用最后一个元素的样式
反之 切换上一个盒子时,所有元素使用它后一个元素的样式,最后一个元素用第一个元素的样式

  1. 项目中有2d 和3d 轮播案例
  2. 样式文件是用less写的,请用支持less预编译的ide运行,或者自行编译成css
    (如果你的电脑全局安装了 less 执行编译命令 lessc slide.less slide.css)
  3. slide.js 支持自定义参数 (请查看默认配置)
slide-3d.png

欢迎路过的同学提问及留言

默认配置

 $.fn.slideCarsousel.defaultSetting = {
        slideInterval :'slideInterval', // 定时器名称
        isAutoChange :true, // true or false 是否自动播放
        direction : 5000, //  间隔时间
        callbackFunc:null, // 如果不为空,会执行该回调函数
        indicatorEvent:'click', // 指示器事件,支持 click or mouseover 
        slideType:'2d' //  轮播类型 2d 或者 3d
     }

在项目中使用

js部分
<script src="../js/slide-min.js"></script>
<script>
    $(function(){
        //3d
        $('#slide3d').slideCarsousel({slideType:'3d',indicatorEvent:'mouseover'});

        //2d
        var  sliderDescArr=[],i=0,len=10;
        for(;i<len;i++){
            sliderDescArr.push(new Array(10).join(''+i));
        }
        $('#sliderDesc').text(sliderDescArr[0]);
        $('#slide2d').slideCarsousel({callbackFunc:function(index){
            $('#sliderDesc1').text(sliderDescArr[index]);
        }});
    });
</script>

html 容器设置类样式 slide-3d or slide-2d

html 部分
 <div id="slide2d" class="slide-carousel slide-2d">
            <ul  class="item-list clearfix">
                <li class="item0">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner1.jpg)
                        </a>
                    </div>
                </li>
                <li class="item1">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner2.jpg)
                        </a>
                    </div>
                </li>
                <li class="item2">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner3.jpg)
                        </a>
                    </div>
                </li>
                <li class="item3">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner4.jpg)
                        </a>
                    </div>
                </li>
                <li class="item4">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner5.jpg)
                        </a>
                    </div>
                </li>
                <li class="item5">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner6.jpg)
                        </a>
                    </div>
                </li>
                <li class="item6">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner7.jpg)
                        </a>
                    </div>
                </li>
                <li class="item7">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner8.jpg)
                        </a>
                    </div>
                </li>
                <li class="item8">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner9.jpg)
                        </a>
                    </div>
                </li>
                <li class="item9">
                    <div class="item-content">
                        <a href="javascript:void(0);">
                            ![](../image/banner10.jpg)
                        </a>
                    </div>
                </li>
            </ul>
            <!--indicators-->
            <div class="indicator-list">
                <a href="javascript:void(0);" data-slide-index="0" class="selected"></a>
                <a href="javascript:void(0);" data-slide-index="1"></a>
                <a href="javascript:void(0);" data-slide-index="2"></a>
                <a href="javascript:void(0);" data-slide-index="3"></a>
                <a href="javascript:void(0);" data-slide-index="4"></a>
                <a href="javascript:void(0);" data-slide-index="5"></a>
                <a href="javascript:void(0);" data-slide-index="6"></a>
                <a href="javascript:void(0);" data-slide-index="7"></a>
                <a href="javascript:void(0);" data-slide-index="8"></a>
                <a href="javascript:void(0);" data-slide-index="9"></a>
            </div>
            <!--controls-->
            <div class="controls">
                <a  class="item-prev glyphicon glyphicon-menu-left" href="javascript:void(0);"></a>
                <a  class="item-next glyphicon glyphicon-menu-right" href="javascript:void(0);"></a>
            </div>
            <!--desc-->
            <div class="desc">
                <a href=""><strong id="sliderDesc1"></strong></a>
            </div>
        </div>

轮播公共样式(我这里用的是less)


.slide-carousel{width: 100%;height: 100%;position: relative;overflow: hidden;
  .item-list{position:relative;height: 100%;width:100%;overflow: hidden;
    li{
      .item-content{width:100%;height: 100%;
        a{display: block;width:100%;height: 100%;
          .cover-img{width:100%;height: 100%;}
        }
      }
    }
  }
  .indicator-list{position: absolute;bottom:20px;left:50%;margin-left: -63px;z-index: 100;
    a{display: inline-block;width: 12px;height: 12px;border: 2px solid #fff;border-radius:50%;overflow: hidden;background-color: #ccc;margin-left: 5px;
      &.selected{border-color: #ff6700;background-color: #5fff92;}
    }
  }
  .controls{opacity: 0;
    a{cursor: pointer;text-decoration: none;width:40px;height: 60px;position: absolute;background-color:rgba(0,0,0,0.2);color:#fff;font-size: 35px;padding-top: 25px;z-index: 2;
      &:hover{background-color:rgba(0,0,0,0.5);}
    }
    .item-prev{top:50%;left: 0;margin-top: -42px;}
    .item-next{top:50%;right: 0;margin-top: -42px;}
  }
  .desc{height: 72px;width:100%;position: absolute;bottom: 0;left: 0;background-color:rgba(0,0,0,0.6);z-index: 99;
    strong{color:#fff;font-size: 20px;line-height: 72px;margin-left: 20px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
  }
  &:hover .controls{opacity: 1;transition: opacity 0.5s ease;}
}
自定义样式
@itemX-2d:1200px;
@itemX-3d:225px;
.itemDefault-3d(@translateX:@itemX-3d,@scale:0.8){
  transform: translate3d(@translateX, 0, 0) scale(@scale);
}
.itemDefault-2d(@translateX:@itemX-2d){
  transform: translateX(@translateX);
}

header .banner{width:1200px;height: 300px;margin: 100px auto 0;
  .slide-carousel{margin-bottom: 20px;}
  .slide-3d{
    .desc{display: none;}
    .item-list li{width:750px;height: 300px;transition: all 0.5s ease-out;opacity: 0;position: absolute;top:0;left: 0;
      &.item0{.itemDefault-3d(@itemX-3d*-1);}
      &.item1{ transform: translate3d(0, 0, 0) scale(0.8);transform-origin: 0 50%;opacity: 1;z-index: 2;}
      &.item2{ transform: translate3d(@itemX-3d, 0, 0) scale(1);transform-origin: 0 50%;opacity: 1;z-index: 3;}
      &.item3{ transform: translate3d(@itemX-3d*2, 0, 0) scale(0.8);transform-origin: 100% 50%;opacity: 1;z-index: 2;}
      &.item4{.itemDefault-3d(@itemX-3d*3);}
      &.item5{.itemDefault-3d(@itemX-3d*4);}
      &.item6{.itemDefault-3d(@itemX-3d*5);}
      &.item7{.itemDefault-3d(@itemX-3d*6);}
      &.item8{.itemDefault-3d(@itemX-3d*7);}
      &.item9{.itemDefault-3d(@itemX-3d*8);}
    }
  }
  .slide-2d .item-list li{width:1200px;height: 300px;transition: all 0.5s ease-out;position: absolute;top:0;left: 0;
    &.item0{.itemDefault-2d(@itemX-2d*-1);}
    &.item1{.itemDefault-2d(@itemX-2d*0);}
    &.item2{ .itemDefault-2d(@itemX-2d);}
    &.item3{.itemDefault-2d(@itemX-2d*2);}
    &.item4{.itemDefault-2d(@itemX-2d*3);}
    &.item5{.itemDefault-2d(@itemX-2d*4);}
    &.item6{.itemDefault-2d(@itemX-2d*5);}
    &.item7{.itemDefault-2d(@itemX-2d*6);}
    &.item8{.itemDefault-2d(@itemX-2d*7);}
    &.item9{.itemDefault-2d(@itemX-2d*8);}
  }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353