码迷,mamicode.com
首页 > Web开发 > 详细

基于jquery的水平滚轴组件,多参数可设置。

时间:2017-09-06 00:33:20      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:mat   技术分享   abs   div   font   分享   set   ima   中间   

闲来无事,继续封装。此次封装的为水平滚轴组件,可选择滚动的距离大小。闲话不多说,直接上图。

技术分享

参数说明:

vis:4                中间区域可现实的 li 个数
scroll:4               每次滚过的li个数,若大于vis,则取 scroll%vis的余数
wrap:".scroll-main ul"                 中间区域的包裹层选择器
item:".scroll-main ul li",          中间区域每个li的选择器
btnPre:".pre-scroll"                左滚按钮的选择器
btnNext:".next-scroll"           右滚按钮的选择器

 

html如下:

<div class="scroll-banner">
    <span class="pre-scroll iconfont">&#xe602;</span>
    <span class="next-scroll iconfont">&#xe601;</span>
    <div class="scroll-main">
        <ul>
            <li><a href="#"><img src="images/scroll-pic.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic2.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic3.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic4.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic2.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic4.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic.jpg"></a></li>
            <li><a href="#"><img src="images/scroll-pic2.jpg"></a></li>
        </ul>
    </div>
</div>

css如下:

 .scroll-banner{
     position:relative;
 }
.scroll-main{
    width:560px;
    margin:0 auto;
    overflow:hidden;
}
.scroll-main ul{
  overflow:hidden;
  position:relative;
  left:0px;
}
.scroll-main ul li{
  float:left;
  width:140px;
  height:120px;
  padding:0 10px;
}
.scroll-main ul li img{
    width:100%;
    height:100%;
}
.pre-scroll,
.next-scroll
{
    position: absolute;
    top:35px;
    color:#fff;
    z-index:100;
    cursor:pointer;
    font-size:40px;
}
.pre-scroll{
    left:10px;
}
.next-scroll{
    right:10px;
}

js如下:

function scrollBanner(obj){
    this.set={
        vis:4,
        scroll:4,
        wrap:".scroll-main ul",
        item:".scroll-main ul li",
        btnPre:".pre-scroll",
        btnNext:".next-scroll"
    }
    var _this=this;
    $.extend(this.set,obj)
    this.set.scroll=this.set.scroll>this.set.vis?this.set.scroll%this.set.vis:this.set.scroll;
    var itemNum=$(_this.set.item).length;
    var itemW=$(_this.set.item).outerWidth();
    $(_this.set.wrap).css({"width":itemNum*itemW+"px"})

    $(_this.set.btnPre).eq(0).click(function(){
        var nowL=parseInt($(_this.set.wrap).eq(0).css("left"))
        if(nowL>=0){
            $(_this.set.wrap+":not(:animated)").eq(0).animate({"left":-(itemNum-_this.set.vis)*itemW+"px"})
        }else{
            $(_this.set.wrap+":not(:animated)").eq(0).animate({"left":nowL+_this.set.scroll*itemW+"px"})
        }
        
    })
    $(_this.set.btnNext).eq(0).click(function(){
        var nowL=parseInt($(_this.set.wrap).eq(0).css("left"))
        if(nowL<=-(itemNum-_this.set.vis)*itemW){
            $(_this.set.wrap+":not(:animated)").eq(0).animate({"left":"0px"})
        }else{
            $(_this.set.wrap+":not(:animated)").eq(0).animate({"left":nowL-_this.set.scroll*itemW+"px"})
        }
    })
}



//调用
new scrollBanner({
    scroll:2
});

 

基于jquery的水平滚轴组件,多参数可设置。

标签:mat   技术分享   abs   div   font   分享   set   ima   中间   

原文地址:http://www.cnblogs.com/pomelott/p/7482421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!