一个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 相关文章推荐
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
Nov 10 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
js点击选择文本的方法
Feb 09 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
Oct 26 Javascript
Bootstrap每天必学之按钮(一)
Nov 24 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
Dec 30 Javascript
js css自定义分页效果
Feb 24 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
vue项目部署上线遇到的问题及解决方法
Jun 10 Javascript
vue自定义指令的创建和使用方法实例分析
Dec 04 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下载xls文件(自己动手写的)
2014/04/18 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
Python构建网页爬虫原理分析
2017/12/19 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
python中property和setter装饰器用法
2019/12/19 Python
通过实例解析python描述符原理作用
2020/01/22 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
后备干部考察材料
2014/02/12 职场文书
校长创先争优承诺书
2014/08/30 职场文书
作风转变年心得体会
2014/10/22 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
2015年加油站工作总结
2015/05/13 职场文书