基于jquery可配置循环左右滚动例子


Posted in Javascript onSeptember 09, 2011
<!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> 
<title>可配置横栏滚动Demo</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<style type="text/css"> 
* { margin:0; padding:0;} 
body { font-size:12px;} 
</style> 
<script src="jquery-1.4.1.js" type="text/javascript"></script> 
<style type="text/css"> 
#scrollable { 
background-color:#efefef; 
border:1px solid #ddd; 
padding:10px 8px; 
width:523px; 
height:65px; 
margin-top:30px; 
} 
div.items { 
height:66px; 
margin-left:8px; 
float:left; 
width:475px !important; 
} 
div.items a { 
display:block; 
float:left; 
margin-right:8px; 
width:88px; 
height:66px; 
background:#BBB; 
font-size:50px; 
color:#ccc; 
line-height:66px; 
text-decoration:none; 
text-align:center; 
cursor:pointer; 
} 
div.items a:hover { 
color:#999; 
} 
div.items a.active { 
background-position:-174px 0; 
color:#555; 
cursor:default; 
} 
a.prev, a.next { 
background:url(left.png) no-repeat 0 0; 
display:block; 
width:18px; 
height:18px; 
float:left; 
margin:22px 0 0 0; 
cursor:pointer; 
} 
a.next { 
background-image:url(right.png) 
} 
a.prev:hover { 
background-position:0 -18px; 
} 
a.next:hover { 
background-position:0 -18px; 
} 
</style> 
<script language="javascript" type="text/javascript"> 
(function ($) { 
$.fn.extend({ 
Scroll: function (opt, callback) { 
if (!opt) var opt = {}; 
var _btnleft = $(opt.left); 
var _btnright = $(opt.right); 
var timerID; 
var _this = this.eq(0).find("div").eq(1); 
var lineW = _this.find("a:first").width(), //获取列宽 
line = opt.line ? parseInt(opt.line, 10) : parseInt(_this.width() / lineW, 10), //每次滚动的列数,默认为一屏,即父容器列宽 
speed = opt.speed ? parseInt(opt.speed, 10) : 500; //滚动速度,数值越大,速度越慢(毫秒) 
timer = opt.timer ? parseInt(opt.timer, 10) : 3000; //滚动的时间间隔(毫秒) 
if (line == 0) line = 1; 
var upWidth = 0 - line * lineW; 
//滚动函数 
var scrollLeft = function () { 
if (!_this.is(":animated")) { 
_this.animate({ 
left: upWidth 
}, speed, function () { 
for (i = 1; i <= line; i++) { 
_this.find("a:first").appendTo(_this); 
} 
_this.css({ left: 0 }); 
}); 
} 
} 
var scrollRight = function () { 
if (!_this.is(":animated")) { 
for (i = 1; i <= line; i++) { 
_this.find("a:last").show().prependTo(_this); 
} 
_this.css({ left: upWidth }); 
_this.animate({ 
left: 0 
}, speed, function () { 
}); 
} 
} //Shawphy:自动播放 
var autoPlay = function () { 
if (timer) timerID = window.setInterval(scrollLeft, timer); 
}; 
var autoStop = function () { 
if (timer) window.clearInterval(timerID); 
};




//鼠标事件绑定 
_this.hover(autoStop, autoPlay).mouseout(); 
_btnleft.css("cursor", "pointer").click(scrollLeft).hover(autoStop, autoPlay); 
_btnright.css("cursor", "pointer").click(scrollRight).hover(autoStop, autoPlay); 
} 
}) 
})(jQuery); 
$(document).ready(function () { 
$("#scrollable").Scroll({ line: 5, speed: 500, timer: 3000, left: ".prev", right: ".next"}); 
}); 
</script> 
</head> 
<body> 
<div style="margin:0 auto;width:500px;"> 
<div id="scrollable"> 
<a class="prev" href="#"></a> 
<div class="items" style="overflow: hidden; position: relative; visibility: visible; width: 478px;"> 
<div style="position: absolute; width: 200000em; left: 0px;" class="scrollable_demo"> 
<a>1</a> 
<a>2</a> 
<a>3</a> 
<a>4</a> 
<a>5</a> 
<a>6</a> 
<a>7</a> 
<a>8</a> 
<a>9</a> 
<a>10</a> 
<a>11</a> 
<a>12</a> 
<a>13</a> 
<a>14</a> 
<a>15</a> 
</div> 
<br clear="all"/> 
</div> 
<a class="next" href="#"></a> 
</div> 
</div> 
</body> 
</html>

说明:1、需要两个图片

left.png:

基于jquery可配置循环左右滚动例子

right.png:

基于jquery可配置循环左右滚动例子

2、需要引入jquery的包,这个应该不用说的......

Javascript 相关文章推荐
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
Jul 26 Javascript
jQuery Tools tooltip使用说明
Jul 14 Javascript
原生javascript和jquery判断浏览器版本等信息
Jul 04 Javascript
JavaScript中的prototype.bind()方法介绍
Apr 04 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
Jan 13 Javascript
js正则表达式匹配数字字母下划线等
Apr 14 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
Vue父子模版传值及组件传值的三种方法
Nov 27 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
Sep 09 #Javascript
详谈 Jquery Ajax异步处理Json数据.
Sep 09 #Javascript
$.ajax返回的JSON无法执行success的解决方法
Sep 09 #Javascript
yepnope.js 异步加载资源文件
Sep 08 #Javascript
jquery绑定原理 简单解析与实现代码分享
Sep 06 #Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
Sep 05 #Javascript
JQuery扩展插件Validate—4设置错误提示的样式
Sep 05 #Javascript
You might like
多文件上载系统完整版
2006/10/09 PHP
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
php格式化日期实例分析
2014/11/12 PHP
在模板页面的js使用办法
2010/04/01 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
javascript如何写热点图
2015/12/08 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
js实现每日签到功能
2018/11/29 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
Element Badge标记的使用方法
2020/07/27 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
python实现邮件自动发送
2019/08/10 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
python模块如何查看
2020/06/16 Python
浅谈python出错时traceback的解读
2020/07/15 Python
通俗讲解python 装饰器
2020/09/07 Python
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
社区学雷锋活动策划方案
2014/01/30 职场文书
教师求职自荐信
2014/03/09 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
党校个人总结
2015/03/04 职场文书