一个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 Window及document对象详细整理
Jan 12 Javascript
鼠标滑上去后图片放大浮出效果的js代码
May 28 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
JS判断是否360安全浏览器极速内核的方法
Jan 29 Javascript
JavaScript中的普通函数与构造函数比较
Apr 07 Javascript
不想让浏览器运行javascript脚本的方法
Nov 20 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
jQuery实现两个select控件的互移操作
Dec 22 Javascript
微信小程序中添加客服按钮contact-button功能
Apr 27 Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 Javascript
javascript实现商品图片放大镜
Nov 28 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
input的focus方法使用
2010/03/13 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
详解django中Template语言
2020/02/22 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
运动会广播稿50字
2014/01/26 职场文书
工作自我评价怎么写
2014/01/29 职场文书
优良学风班总结材料
2014/02/08 职场文书
安全教育实施方案
2014/03/02 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
神州牡丹园的导游词
2019/11/20 职场文书