一个JQuery写的点击上下滚动的小例子 - Web前端
作者:98wpeu发布时间:2026-06-21分类:网页前端技术浏览:3
导读:功能需求:1、滚动框内显示10条记录;2、有向上和向下滚动按钮,每次点击按钮向上或向下滚动记录条数,不自动滚动;3、记录条数不循环滚动,滚动到起点或终点则停止滚动。下面介绍...
功能需求:
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>
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>
- 上一篇:jQuery EasyUI API 中文文档 搜索框 - Web前端
- 下一篇:已经是最后一篇了
相关推荐
- jquery随意添加移除html的实现代码 - Web前端
- jQuery EasyUI API 中文文档 搜索框 - Web前端
- jquery中防刷IP流量软件影响统计的一点对策 - Web前端
- jquery maxlength使用说明 - Web前端
- 基于Jquery实现表格动态分页实现代码 - Web前端
- jQuery 源码分析笔记(6) jQuery.data - Web前端
- 读jQuery之六 缓存数据功能介绍 - Web前端
- 超轻量级的基于jquery的三级展开列表 - Web前端
- 使用jquery中height()方法获取各种高度大全 - Web前端
- jQuery 操作option的实现代码 - Web前端
- 网页前端技术排行
-
- 1【第六章】Foundation之按钮和下拉功能 - Web前端
- 2jQuery编写widget的一些技巧分享 - Web前端
- 3在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 4基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 5分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 6jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 9JS网页制作实例:标签云 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


