基于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 相关文章推荐
javascript 获取元素位置的快速方法 getBoundingClientRect()
Nov 26 Javascript
ext 列表页面关于多行查询的办法
Mar 25 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
Javascript中引用示例介绍
Feb 21 Javascript
JavaScript中定义函数的三种方法
Mar 12 Javascript
jQuery中使用each处理json数据
Apr 23 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 Javascript
详解Vuex管理登录状态
Nov 13 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 Javascript
JavaScript数组去重实现方法小结
Jan 17 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
php数组总结篇(一)
2008/09/30 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
php 使用array函数实现分页
2015/02/13 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
js类 from qq
2006/11/13 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
Vue指令指令大全
2019/02/09 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
利用Django模版生成树状结构实例代码
2019/05/19 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
python右对齐的实例方法
2020/07/05 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
搞笑创意广告语
2014/03/17 职场文书
颁奖晚会主持词
2014/03/25 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
会计出纳岗位职责
2015/03/31 职场文书
最新最全的手机号验证正则表达式
2022/02/24 Javascript
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫