设为首页收藏本站关注微信<<< 抵制 IE6 人人有责 >>>
搜索
热搜: 活动 交友 discuz
查看: 558|回复: 0

[Jquery] JQuery写的点击上下滚动的小例子

[复制链接]
发表于 2017-2-14 04:38:33 | 显示全部楼层 |阅读模式
[HTML] 纯文本查看 复制代码
<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>

[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;
}


[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"
    });
});



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Archiver|源于生活(个人生活娱乐工作的笔记)css3,html5,学习笔记    

GMT+8, 2019-8-23 03:50 , Processed in 0.234375 second(s), 26 queries .

Powered by Mr.Kevin-ying

© 2004-2015

快速回复 返回顶部 返回列表