一个JQuery写的点击上下滚动的小例子


Posted in Javascript onAugust 27, 2011

功能需求:
1、滚动框内显示10条记录;
2、有向上和向下滚动按钮,每次点击按钮向上或向下滚动记录条数,不自动滚动;
3、记录条数不循环滚动,滚动到起点或终点则停止滚动。
下面介绍一个简单实现方法:
1、外层容器(div) overflow: hidden,内层列表(ul)
2、按钮点击事件触发一个修改列表的函数
3、应用animate实现动画效果
具体不再??拢?苯由洗?
CSS设置

<style type="text/css"> 
ul, li 
{ 
margin: 0; 
padding: 0; 
} 
#scrollDiv 
{ 
width: 300px; 
height: 250px; 
min-height: 25px; 
line-height: 25px; 
border: #ccc 1px solid; 
overflow: hidden; 
} 
#scrollDiv li 
{ 
height: 25px; 
padding-left: 10px; 
} 
</style>

JQuery 代码
<script type="text/javascript"> 
(function ($) { 
$.fn.extend({ 
Scroll: function (opt, callback) { 
if (!opt) var opt = {}; 
var _btnUp = $("#" + opt.up); //Shawphy:向上按钮 
var _btnDown = $("#" + opt.down); //Shawphy:向下按钮 
var _this = this.eq(0).find("ul:first"); 
var lineH = _this.find("li:first").height(); //获取行高 
var line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10); //每次滚动的行数,默认为一屏,即父容器高度 
var speed = opt.speed ? parseInt(opt.speed, 10) : 600; //卷动速度,数值越大,速度越慢(毫秒) 
var m = line; //用于计算的变量 
var count = _this.find("li").length; //总共的<li>元素的个数 
var upHeight = line * lineH; 
function scrollUp() { 
if (!_this.is(":animated")) { //判断元素是否正处于动画,如果不处于动画状态,则追加动画。 
if (m < count) { //判断 m 是否小于总的个数 
m += line; 
_this.animate({ marginTop: "-=" + upHeight + "px" }, speed); 
} 
} 
} 
function scrollDown() { 
if (!_this.is(":animated")) { 
if (m > line) { //判断m 是否大于一屏个数 
m -= line; 
_this.animate({ marginTop: "+=" + upHeight + "px" }, speed); 
} 
} 
} 
_btnUp.bind("click", scrollUp); 
_btnDown.bind("click", scrollDown); 
} 
}); 
})(jQuery); 
$(function () { 
$("#scrollDiv").Scroll({ line: 10, speed: 500,up: "btn1", down: "btn2" }); 
}); 
</script>

可以设置$("#scrollDiv").Scroll({ line: 10, speed: 500,up: "btn1", down: "btn2" });对滚动按钮,滚动行数,滚动速度进行设置。
Html Body 内容
<body> 
<p style="font-family: 微软雅黑; font-weight: bold;"> 
信息滚动栏DEMO:</p> 
<div id="scrollDiv"> 
<ul> 
<li>这是滚动信息的第1行</li> 
<li>这是滚动信息的第2行</li> 
<li>这是滚动信息的第3行</li> 
<li>这是滚动信息的第4行</li> 
<li>这是滚动信息的第5行</li> 
<li>这是滚动信息的第6行</li> 
<li>这是滚动信息的第7行</li> 
<li>这是滚动信息的第8行</li> 
<li>这是滚动信息的第9行</li> 
<li>这是滚动信息的第10行</li> 
<li>这是滚动信息的第11行</li> 
<li>这是滚动信息的第12行</li> 
<li>这是滚动信息的第13行</li> 
<li>这是滚动信息的第14行</li> 
<li>这是滚动信息的第15行</li> 
<li>这是滚动信息的第16行</li> 
<li>这是滚动信息的第17行</li> 
<li>这是滚动信息的第18行</li> 
<li>这是滚动信息的第19行</li> 
<li>这是滚动信息的第20行</li> 
<li>这是滚动信息的第21行</li> 
<li>这是滚动信息的第22行</li> 
<li>这是滚动信息的第23行</li> 
<li>这是滚动信息的第24行</li> 
<li>这是滚动信息的第25行</li> 
<li>这是滚动信息的第26行</li> 
<li>这是滚动信息的第27行</li> 
<li>这是滚动信息的第28行</li> 
<li>这是滚动信息的第29行</li> 
<li>这是滚动信息的第30行</li> 
<li>这是滚动信息的第31行</li> 
<li>这是滚动信息的第32行</li> 
</ul> 
</div> 
<button id="btn1"> 
上滚</button> 
<button id="btn2"> 
下滚</button> 
</body>
Javascript 相关文章推荐
javascript 表单规则集合对象
Jul 21 Javascript
基于jquery的修改当前TAB显示标题的代码
Dec 11 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
Nov 07 Javascript
jQuery filter函数使用方法
May 19 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
Jul 23 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
微信小程序实现判断是分享到群还是个人功能示例
May 03 Javascript
原生JS实现动态添加新元素、删除元素方法
May 05 Javascript
JavaScript实现鼠标经过表格某行时此行变色
Nov 20 Javascript
JavaScript 原型继承之构造函数继承
Aug 26 #Javascript
JavaScript原型继承之基础机制分析
Aug 26 #Javascript
自己动手开发jQuery插件教程
Aug 25 #Javascript
JQuery里面的几种选择器 查找满足条件的元素$(&quot;#控件ID&quot;)
Aug 23 #Javascript
基于JQuery的Select选择框的华丽变身
Aug 23 #Javascript
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 #Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 #Javascript
You might like
用PHP读取RSS feed的代码
2008/08/01 PHP
php汉字转拼音的示例
2014/02/27 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
Python中关于使用模块的基础知识
2015/05/24 Python
python开发之list操作实例分析
2016/02/22 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
电力安全事故反思
2014/04/27 职场文书
信息合作协议书
2014/10/09 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
给客户的感谢信
2015/01/21 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
教师节联欢会主持词
2015/07/04 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
学术会议开幕词
2016/03/03 职场文书