图片左右滚动,一次滚N个

同上一篇“新闻滚动”的原理基本差不多,直接贴代码了:

html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/slide.css" />
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/scroll.js"></script>
<title>js</title>
</head>
<body>
<div id="container">


    <!--图片滚动-->
    <div class="slide">
        <div class="slideBox">
            <ul>
                <li><a href="javascript:void(0)"><img src="images/banner1.jpg" /></a></li>
                <li><a href="javascript:void(0)"><img src="images/banner2.jpg" /></a></li>
                <li><a href="javascript:void(0)"><img src="images/banner3.jpg" /></a></li>  
                <li><a href="javascript:void(0)"><img src="images/banner4.jpg" /></a></li> 
            </ul>
        </div>
        <a class="leftBtn" href="javascript:void(0)"></a>
        <a class="rightBtn" href="javascript:void(0)"></a>
    </div><!--图片滚动 - 结束-->
    
    
</div>
</body>
</html>

css:

@charset "utf-8";
*{margin:0;padding:0;font-size:12px;font-family:Arial, Helvetica, sans-serif,"宋体";}
ul,ol,li{list-style-type:none;}
img{border:none;}
table{border-collapse:collapse;border-spacing:0;}
a{text-decoration:none;}

#container{width:990px;margin:50px auto;}

/*广告滚动*/
.slide{width:990px;position:relative;}
.slideBox{width:990px;height:158px;overflow:hidden;}
.slideBox ul{width:99999px;}
.slideBox ul li{float:left;}
.slideBox ul li a img{width:330px;height:158px;float:left;}
.slide a.leftBtn{
    width:50px;height:50px;display:block;position:absolute;top:54px;left:0;
    background:url(../Images/leftBtn.png) no-repeat;
}
.slide a.rightBtn{
    width:50px;height:50px;display:block;position:absolute;top:54px;right:0;
    background:url(../Images/rightBtn.png) no-repeat;
}

jq:

function scrollxn(option){
    var area = (typeof option.area=="undefined")?jQuery(""):option.area;                    //鼠标经过停止自动播放的区域
    var box = (typeof option.box=="undefined")?jQuery(""):option.box;                         //包含滚动项目的容器
    var leftBtn = (typeof option.leftBtn=="undefined")?jQuery(""):option.leftBtn;            //左按钮
    var rightBtn = (typeof option.rightBtn=="undefined")?jQuery(""):option.rightBtn;        //右按钮
    var showNum = (typeof option.showNum=="undefined")?1:option.showNum;                    //容器(box)显示的图片个数
    var waitTime = (typeof option.waitTime=="undefined")?8000:option.waitTime;                //滚动间隔时间
    var animateTime = (typeof option.animateTime=="undefined")?"slow":option.animateTime;    //滚动持续时间
    var easing = (typeof option.easing=="undefined")?"swing":option.easing;                    //滚动效果
    var autoPlay = (typeof option.autoPlay=="undefined")?true:option.autoPlay;                //是否自动播放
    
    var listNum = box.find("li").length;                             //图片总数量
    var listWid = box.find("li").first().outerWidth(true);            //每个li的宽度(包括内外边距)    
    var marLeft = -listNum * listWid;                                //ul初始距离    
    var allow = true;                                                //防止连续点击左右按钮                                
    
    //如果总图片数小于容器容纳的图片数,不滚动
    if(listNum < showNum){
        allow = false;
    }else{
        var list1 = box.find("li").clone(true);
        var list2 = box.find("li").clone(true);
        list1.appendTo(box.find("ul"));
        list2.appendTo(box.find("ul"));
        box.find("ul").css("margin-left",marLeft + "px");
    }
    
    //点击左键 - 向右滚动
    leftBtn.click(function(){
        if(allow){
            allow = false;
            box.find("ul").animate({marginLeft:marLeft+showNum*listWid+"px"},animateTime,easing,function(){
                for(var i=0;i<showNum;i++){
                    box.find("li").last().clone(true).prependTo(box.find("ul"));
                    box.find("li").last().remove();
                }
                box.find("ul").css("margin-left",marLeft + "px");
                allow = true ;
            });
        }
    });
    
    //点击右键 - 向左滚动
    rightBtn.click(function(){autoRun();});
    function autoRun(){
        if(allow){
            allow = false;
            box.find("ul").animate({marginLeft:marLeft-showNum*listWid+"px"},animateTime,easing,function(){
                for(var e=0;e<showNum;e++){
                    box.find("li").first().clone(true).appendTo(box.find("ul"));
                    box.find("li").first().remove();
                }
                box.find("ul").css("margin-left",marLeft + "px");
                allow = true ;
            });
        }
    }
    
    //自动播放
    if(autoPlay){    
        var intID = setInterval(autoRun,waitTime);                
        //鼠标滑入停止动画,滑出播放动画
        area.hover(function(){
            clearInterval(intID);
        },function(){
            intID = setInterval(autoRun,waitTime);
        });
    }
    
}
/*-------------------------------------------------------------------------------------------------------------------------------*/


//滚动
$(function(){
    scrollxn({
        area : $(".slide"),                        //鼠标经过停止自动播放的区域
        box : $(".slideBox"),                    //包含滚动项目的容器
        leftBtn : $(".slide a.leftBtn"),        //左按钮
        rightBtn : $(".slide a.rightBtn"),        //右按钮
        showNum : 3,                            //容器显示的图片个数
        waitTime : 8000,                        //滚动间隔时间
        animateTime : "slow",                    //滚动持续时间
        easing : "swing",                        //滚动效果
        autoPlay : true                            //是否自动播放
    });
});
原文地址:https://www.cnblogs.com/wwqianduan/p/3336870.html