一个基于jquery的多行滚动插件

最近开发过程中用到的前台滚动效果,发现这个插件蛮好用的,基于jquery扩展的,在此做个笔记备忘,也可为需要的同行提供方便:

 

 

(function ($) {
                $.fn.extend({
                    Scroll: function (opt, callback) {
                        //参数初始化
                        if (!opt) var opt = {};
                        var _this = this.eq(0).find("ul:first");
                        var lineH = _this.find("li:first").height(), //获取行高
                        line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10), //每次滚动的行数,默认为一屏,即父容器高度
                        speed = opt.speed ? parseInt(opt.speed, 10) : 500, //卷动速度,数值越大,速度越慢(毫秒)
                        timer = opt.timer ? parseInt(opt.timer, 10) : 3000; //滚动的时间间隔(毫秒)
                        if (line == 0) line = 1;
                        var upHeight = 0 - line * lineH;
                        //滚动函数
                        scrollUp = function () {
                            _this.animate({
                                marginTop: upHeight
                            }, speed, function () {
                                for (i = 1; i <= line; i++) {
                                    _this.find("li:first").appendTo(_this);
                                }
                                _this.css({ marginTop: 0 });
                            });
                        }
                        //鼠标事件绑定
                        _this.hover(function () {
                            clearInterval(timerID);
                        }, function () {
                            timerID = setInterval("scrollUp()", timer);
                        }).mouseout();
                    }
                })
            })(jQuery);

 调用时使用以下代码:

$("#scrollDiv").Scroll({ line: 3, speed: 500, timer: 4000 });

你可能感兴趣的:(jquery)