一个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的trim,ltrim,rtrim自定义函数
Sep 21 Javascript
js 表格隔行颜色
Dec 02 Javascript
JavaScript 图片预览效果 推荐
Dec 22 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
JS控件的生命周期介绍
Oct 22 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
浅谈Node模块系统及其模式
Nov 17 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
Jul 28 Javascript
vue 限制input只能输入正数的操作
Aug 05 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
简单实用的PHP防注入类实例
2014/12/05 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
vue中的scope使用详解
2017/10/29 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python 域名分析工具实现代码
2009/07/15 Python
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python根据文本生成词云图代码实例
2019/11/15 Python
python实现电子词典
2020/03/03 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
工厂仓管员岗位职责
2014/01/01 职场文书
英语教育专业自荐信
2014/05/29 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
经理聘任证明
2015/03/02 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技