一个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 相关文章推荐
offsetParent 算法分析
Apr 05 Javascript
JavaScript prototype 使用介绍
Aug 29 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
AngularJS 中的事件详解
Jul 28 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
Dec 19 Javascript
JavaScript对象封装的简单实现方法(3种方法)
Jan 03 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
Jun 09 Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 Javascript
详解A标签中href=&quot;&quot;的几种用法
Aug 20 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
快速解决vue-cli在ie9+中无效的问题
Sep 04 Javascript
layui table 列宽百分比显示的实现方法
Sep 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
解析crontab php自动运行的方法
2013/06/24 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
python实现屏保计时器的示例代码
2018/08/08 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
Python tkinter三种布局实例详解
2020/01/06 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
亿企通软件测试面试题
2012/04/10 面试题
受欢迎的大学生自我评价
2013/12/05 职场文书
承办会议欢迎词
2014/01/17 职场文书
《阳光》教学反思
2014/02/23 职场文书
团队拓展活动方案
2014/08/28 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
教育合作协议范本
2014/10/17 职场文书
2014年协会工作总结
2014/11/22 职场文书
2016大学军训通讯稿
2015/11/25 职场文书