67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
// JavaScript Document
|
||
(function ($) {
|
||
$.fn.scroll = function (options) {
|
||
//默认配置
|
||
var defaults = {
|
||
speed: 30, //滚动速度为0-100之间
|
||
direction: 'vertical' //方向:vertical向上滚动,horizantal向左滚动
|
||
};
|
||
|
||
var opts = $.extend({}, defaults, options), intId = [];
|
||
|
||
function marquee(obj, step, direction) {
|
||
if (direction == 'horizantal') {
|
||
obj.find("ul").animate({
|
||
marginLeft: '-=1'
|
||
}, 0, function () {
|
||
var s = Math.abs(parseInt($(this).css("margin-left")));
|
||
if (s >= step) {
|
||
$(this).find("li").slice(0, 1).appendTo($(this));
|
||
$(this).css("margin-left", 0);
|
||
}
|
||
});
|
||
} else if (direction == 'vertical') {
|
||
obj.find("ul").animate({
|
||
marginTop: '-=1'
|
||
}, 0, function () {
|
||
var s = Math.abs(parseInt($(this).css("margin-top")));
|
||
if (s >= step) {
|
||
$(this).find("li").slice(0, 1).appendTo($(this));
|
||
$(this).css("margin-top", 0);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
this.each(function (i) {
|
||
var speed = 0 < 100 - opts["speed"] && 100 - opts["speed"] <= 100 ? 100 - opts["speed"] : 30;
|
||
var direction = opts["direction"] == 'vertical' || opts["direction"] == 'horizantal' ? opts["direction"] : 'vertical';
|
||
var _this = $(this);
|
||
intId[i] = setInterval(function () {
|
||
var sh;
|
||
if (direction == 'horizantal') {
|
||
sh = _this.find("ul").find("li:first").outerWidth(true);
|
||
} else {
|
||
sh = _this.find("ul").find("li:first").outerHeight(true);
|
||
}
|
||
marquee(_this, sh, direction);
|
||
}, speed);
|
||
|
||
_this.hover(function () {
|
||
clearInterval(intId[i]);
|
||
}, function () {
|
||
intId[i] = setInterval(function () {
|
||
var sh;
|
||
if (direction == 'horizantal') {
|
||
sh = _this.find("ul").find("li:first").outerWidth(true);
|
||
} else {
|
||
sh = _this.find("ul").find("li:first").outerHeight(true);
|
||
}
|
||
marquee(_this, sh, direction);
|
||
}, speed);
|
||
});
|
||
|
||
});
|
||
|
||
}
|
||
})(jQuery); |