美文网首页
滑动轮播,中间放大

滑动轮播,中间放大

作者: 羊绘霖 | 来源:发表于2018-11-02 12:01 被阅读0次

    <div class="btnMode" id="slider">

    <a href="javascript:void(0);" class="prev btn"></a>

    <div class="scroll">

    <ul class="scrollContainer clearfix">

              <li class="panels" id="panel_1">

    <a href="http://sc.chinaz.com/" class="inside" target="_blank">

    <img width="230" height="295" alt="Alexander McQueen秋季" src="~/Content/common/mode/images/dududu.jpg" />

    <span>Alexander McQueen秋季</span>

    </a>

    </li>

    <li class="panels" id="panel_2">

    <a href="http://sc.chinaz.com/" class="inside" target="_blank">

    <img width="230" height="295" alt="Gustavsson演绎朋克的性感" src="~/Content/common/mode/images/penk.jpg" />

    <span>Gustavsson演绎朋克的性感</span>

    </a>

    </li>

    <li class="panels" id="panel_3">

    <a href="http://sc.chinaz.com/" class="inside" target="_blank">

    <img width="230" height="295" alt="Alexander McQueen秋季" src="~/Content/common/mode/images/dududu.jpg" />

    <span>Alexander McQueen秋季</span>

    </a>

    </li>

    <li class="panels current" id="panel_4">

    <a href="http://sc.chinaz.com/" class="inside" target="_blank">

    <img width="230" height="295" alt="僵尸男孩的性感震撼" src="~/Content/common/mode/images/ala.jpg" />

    <span>僵尸男孩的性感震撼</span>

    </a>

    </li>

    <li class="panels" id="panel_5">

    <a href="http://sc.chinaz.com/" class="inside" target="_blank">

    <img width="230" height="295" alt="超级男模" src="~/Content/common/mode/images/oab.jpg" />

    <span>超级男模</span>

    </a>

    </li>

    <li class="panels" id="panel_6">

    <a href="http://sc.chinaz.com/" class="inside" target="_blank">

    <img width="230" height="295" alt="Alexander McQueen秋季" src="~/Content/common/mode/images/dududu.jpg" />

    <span>Alexander McQueen秋季</span>

    </a>

    </li>

    <li class="panels" id="panel_7">

    <a href="http://sc.chinaz.com/" class="inside" target="_blank">

    <img width="230" height="295" alt="僵尸男孩的性感震撼" src="~/Content/common/mode/images/ala.jpg" />

    <span>僵尸男孩的性感震撼</span>

    </a>

    </li>*@

    </ul>

    </div>

    <a href="javascript:void(0);" class="next btn"></a>   

    </div>

    css:

    *{margin:0;padding:0;list-style-type:none;}

    a,img{border:0;}

    body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";}

    a{color:#000;outline:none;text-decoration:none;}

    a:hover{text-decoration:underline;}

    /* slider */

    #slider{width:100%;height:380px;overflow:hidden;padding:20px 15px;position:relative;margin:0 auto;}

    .scroll{width:620px;height:380px;margin:0 auto;overflow:hidden;position:relative;}

    .scrollContainer{position: relative;width:1815px;left:0px;}

    .scrollContainer .current .inside{width:246px;height:288px;}

    .scrollContainer .panels{width:170px;height:235px;float: left;margin-right:16px;display:inline;}

    .panels .inside{display:block;position:relative; }

    .inside img{height:100%;width:100%;}

    .scroll li .inside span{width:80%;height:37px;line-height:37px;/*display:none;*/position:absolute;bottom:-17px;left:10%;background-color:#a55312;font-size:14px;color:#FFF;text-align:center;}

    .scroll li.current .inside span{display:block;}

    .btnMode a.btn{background:url('../images/index.png') no-repeat;}

    .btnMode a.btn{width:20px; height:39px;position:absolute;top:125px; }

    .btnMode a.prev{left:5px;background-position:0 -61px;}

    .btnMode a.prev:hover{background-position:0 -102px;}

    .btnMode a.next{right:5px;background-position:-50px -61px;}

    .btnMode a.next:hover{background-position:-50px -102px;}

    js:

    $(function(){

    /*未元素的首尾添加补白*/

    var $panels = $('#slider .scrollContainer > li');

    var $parent=$panels.parent();//或许当前li的最近一级的父元素

    var $length=$panels.length;//获取指定length值

    var $first=$panels.eq(0).clone().addClass("panel cloned").attr("id",'panel_'+($length+1));//获取第一个元素并复制

    var $last=$panels.eq($length-1).clone().addClass("cloned").attr("id",'panel_0');;//获取最后一个元素并复制

    $parent.append($first);//将li序列中的第一个添加到ul元素中的最后一个  $("#slide02").scrollLeft(0);

    $parent.prepend($last);//将li序列中的最后一个添加到ul元素中的第一个

    var totalPanels = $(".scrollContainer").children().size();//所有子元素的数字,滚动元素的个数 7

    var regWidth = $(".panels").css("width");//获取li元素的宽度

    var regImgWidth = $(".panels img").css("width");//获取其中图片的宽度

    var movingDistance     = 186;//每次移动的距离

    var curWidth = 246;//当前中间li的宽度为350px

    var curHeight        =312;//当前中间li的高度未312 

    var curImgWidth  =246;

    var curImgHeight  =288;

    var othersW          =170;//其他li的宽度

    var othersH          =235;//高度

    var othersImgW          =170;//其他li的宽度

    var othersImgH          =213;//高度

    var $panels = $('#slider .scrollContainer > li');//此处作用是将复制进来补白的元素重新赋值

    var $container = $('#slider .scrollContainer');

    $panels.css({'float' : 'left','position' : 'relative'});

    $("#slider").data("currentlyMoving", false);//是否正在运动中

    $container.css('left','0');//计算容器的总的宽度 PS:25为margin值 offsetWidth

    var scroll = $('#slider .scroll').css('overflow', 'hidden');

    function returnToNormal(element) {//li元素返回到正常状态

    $(element).animate({ width: othersW,height: othersH}).find("img").animate({width:othersImgW,height:othersImgH});

    };

    function growBigger(element) {//当前元素之间变大

    $(element).addClass("current").animate({ width: curWidth,height:curHeight}).siblings().removeClass("current")

    .end().find("img").animate({width:curImgWidth,height:curImgHeight})

    }

    //direction true = right, false = left

    function change(direction) {

    //if not at the first or last panel

    if((direction && !(curPanel < totalPanels-2)) || (!direction && (curPanel <= 1))) {

    return false;

    }

    //if not currently moving

    if (($("#slider").data("currentlyMoving") == false)) {

    $("#slider").data("currentlyMoving", true);

    var next        = direction ? curPanel + 1 : curPanel - 1;

    var leftValue    = $(".scrollContainer").css("left");

    var movement = direction ? parseFloat(leftValue, 10) - movingDistance : parseFloat(leftValue, 10) + movingDistance;

    $(".scrollContainer").stop().animate({"left": movement}, function() {

    $("#slider").data("currentlyMoving", false);

    });

    returnToNormal("#panel_"+curPanel);

    growBigger("#panel_"+next);

    curPanel = next;

    //remove all previous bound functions

    $("#panel_"+(curPanel+1)).unbind();

    //go forward

    $("#panel_"+(curPanel+1)).click(function(){ change(true); });

    //remove all previous bound functions

    $("#panel_"+(curPanel-1)).unbind();

    //go back

    $("#panel_"+(curPanel-1)).click(function(){ change(false); });

    //remove all previous bound functions

    $("#panel_"+curPanel).unbind();

    }

    }

    // Set up "Current" panel and next and prev 设置当前元素和上下

    growBigger("#panel_1");

    var curPanel = 1;

    $("#panel_"+(curPanel+1)).click(function(){ change(true);return false;});

    $("#panel_"+(curPanel-1)).click(function(){ change(false);return false;});

    //when the prev/next arrows are clicked

    $("#slider .next").click(function(){ change(true);});

    $("#slider .prev").click(function(){ change(false);});

    $(window).keydown(function(event){//键盘方向键控制

    switch (event.keyCode) {

    case 13: //enter

    $(".next").click();

    break;

    case 37: //prev arrow

    $(".prev").click();

    break;

    case 39: //next arrow

    $(".next").click();

    break;

    }

    });

    });

    相关文章

      网友评论

          本文标题:滑动轮播,中间放大

          本文链接:https://www.haomeiwen.com/subject/cvwqxqtx.html