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

参数说明:

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"></span>
<span class="next-scroll iconfont"></span>
<div class="scroll-main">
<ul>
<li><a href="#"><img src="data:images/scroll-pic.jpg"></a></li>
<li><a href="#"><img src="data:images/scroll-pic2.jpg"></a></li>
<li><a href="#"><img src="data:images/scroll-pic3.jpg"></a></li>
<li><a href="#"><img src="data:images/scroll-pic4.jpg"></a></li>
<li><a href="#"><img src="data:images/scroll-pic.jpg"></a></li>
<li><a href="#"><img src="data:images/scroll-pic2.jpg"></a></li>
<li><a href="#"><img src="data:images/scroll-pic4.jpg"></a></li>
<li><a href="#"><img src="data:images/scroll-pic.jpg"></a></li>
<li><a href="#"><img src="data: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:;
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的水平滚轴组件,多参数可设置。的更多相关文章

  1. 基于jquery的垂直滚动触发器,多参数可设置。

    最近闲来无事,多封装些功能性组件.后期会有更多放出来,大家可以多关注一下. 先上参数: type:"show",           默认为“show”,“show”意为当能够在可 ...

  2. 基于jQuery发展历程时间轴特效代码

    分享一款基于jQuery发展历程时间轴特效代码,带左右箭头,数字时间轴选项卡切换特效下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="time ...

  3. 基于jQuery的美食时间轴焦点图插件

    这是一款非常炫酷的jQuery焦点图插件,这款jQuery焦点图的特点是有一个时间轴,点击切换按钮时,时间轴会逐渐移动,时间轴上的图片也会逐渐切换.另外,在图片上方也可以放置自定义样式的文字. 在线预 ...

  4. 基于jquery开发的UI框架整理分析

    根据调查得知,现在市场中的UI框架差不多40个左右,不知大家都习惯性的用哪个框架,现在市场中有几款UI框架稍微的成熟一些,也是大家比较喜欢的一种UI框架,那应该是jQuery,有部分UI框架都是根据j ...

  5. 基于jQuery封装的分页组件

    前言: 由于项目需要实现分页效果,上jQuery插件库找了下,但是木有找到自己想要的效果,于是自己封装了个分页组件. 思路: 主要是初始化时基于原型建立的分页模板然后绑定动态事件并实现刷新DOM的分页 ...

  6. 基于jquery带时间轴的图片轮播切换代码

    基于jquery图片标题随小圆点放大切换.这是是一款带时间轴的图片轮播切换代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="decoroll2 ...

  7. 基于jQuery封装的分页组件(可自定义设置)

    jQuery封装的分页组件 前几天做了一个vue的组件分页,而现在需求是jquery的分页,我就根据我自己的需求写了一个.在网上找了很久的基于jquery的分页封装,可是都不是我想要的结果,那么今天我 ...

  8. jquery 滚轴滚动 导航定位和锚点定位

    自己写的,只测试了ie9+, firefox,chrome 以下js更好 var fixbar={ init:function(){ "use strict"; // 滚轴 导航位 ...

  9. 10款基于jquery的web前端特效及源码下载

    1.jQuery时间轴插件:jQuery Timelinr 这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程.大事件等场景.该插件基于jQuery,可以滑动切换.水平和垂直滚 ...

随机推荐

  1. Oracle表字段类型更改的一个经验

    先前表中ID字段类型是用序列,由于安全问题,需要处理水平权限的漏洞,虽然使用加密也可以处理,为了更方便,需要将字段类型改为Guid,如果表中已经有数据,更改起来不是很方便,对于基础数据表,这里提供一个 ...

  2. LeetCode 6罗马数字转整数

    罗马数字包含以下七种字符:I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列 ...

  3. pthread_detach

    http://blog.csdn.net/scanery/article/details/7241890   感谢作者! 近来发现 在线程函数第一行调用 pthread_detach(pthread_ ...

  4. debian8.4 系统莫名没有声音

    [http://www.linuxdiyf.com/viewarticle.php?id=437020 Debian8, 桌面环境是xfce4, 安装完成后发现前面板音频输出插孔正常,后面板的没声音. ...

  5. ELK应用之一:ELK平台搭建部署

    一.获取安装包: EKL官网:https://www.elastic.co/products 二.安装Elasticsearch 2.1.解压安装包,在安装目录创建data和logs目录,并在配置文件 ...

  6. ThinkPHP框架学习(一)

    这几天呢,断断续续地在看孙叔华老师的ThinkPHP教程,期间还做了一些其他事情,出去办了点事,总结总结下一学期规划等等,不知不觉间又过去了大半个星期.现在呢,看完了一天的教程,在这里,还是希望稍微总 ...

  7. Python 入门基础12 --函数基础5 匿名函数、内置函数

    今日内容: 1.三元表达式 2.列表.元组生成式 | 字典生成式 3.递归 4.匿名函数 5.内置函数 一.三元表达式 三元运算符:就是 if...else... 语法糖 前提:if 和 else # ...

  8. DSO 优化代码中的 Schur Complement

    接上一篇博客<直接法光度误差导数推导>,DSO 代码中 CoarseInitializer::trackFrame 目的是优化两帧(ref frame 和 new frame)之间的相对状 ...

  9. 各浏览器 position: fixed 造成的bug 通用解决办法,Safari, iOS

    将原来使用 position: fixed  的元素外层包裹一个 div.fixedWrapper .fixedWrapper { width: 100%; overflow: hidden; pos ...

  10. 5 THINGS TOP BUG BOUNTY HUNTERS DO DIFFERENTLY

    出处:https://www.hackerone.com/blog/5-things-top-bug-bounty-hunters-do-differently 本周,我们有幸收容了50名比利时科技学 ...