作家
登录

一个JQuery写的点击上下滚动的小例子

作者: 来源:www.28hudong.com 2013-03-30 00:45:16 阅读 我要评论

功能需求: 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扩展插件Validate 5添加自定义验证方法

示例如下: 复制代码 代码如下: <script type="text/javascript"> jQuery.validator.addMethod("regex", //addMethod第1个参数:方法名称 function(value, element, params) { //addMethod第2个参数:验证方法,参数>>>详细阅读


本文标题:一个JQuery写的点击上下滚动的小例子

地址:http://www.17bianji.com/kaifa2/JS/24223.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)