一个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 相关文章推荐
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
JS 精确统计网站访问量的实例代码
Jul 05 Javascript
JQuery的$命名冲突详细解析
Dec 28 Javascript
jquery 表格排序、实时搜索表格内容(附图)
May 19 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
Aug 26 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
jQuery图片拖动组件Dropzone用法示例
Jan 17 Javascript
微信小程序 合法域名校验出错详解及解决办法
Mar 09 Javascript
基于vue-ssr服务端渲染入门详解
Jan 08 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
javascript-hashchange事件和历史状态管理实例分析
Apr 18 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
我的论坛源代码(五)
2006/10/09 PHP
php flv视频时间获取函数
2010/06/29 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
Python批量转换文件编码格式
2015/05/17 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
Html5定位终极解决方案
2020/02/05 HTML / CSS
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
介绍一下linux的文件系统
2012/03/20 面试题
青年文明号汇报材料
2014/12/23 职场文书
离婚纠纷代理词
2015/05/23 职场文书
走进科学观后感
2015/06/18 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
Python图片检索之以图搜图
2021/05/31 Python