You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.1 KiB
51 lines
1.1 KiB
// JavaScript Document
|
|
(function($){
|
|
$.fn.myScroll = function(options){
|
|
//默认配置
|
|
var defaults = {
|
|
speed:40, //滚动速度,值越大速度越慢
|
|
rowHeight:24 //每行的高度
|
|
};
|
|
|
|
var opts = $.extend({}, defaults, options),intId = [];
|
|
|
|
function marquee(obj, step){
|
|
|
|
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 sh = opts["rowHeight"],speed = opts["speed"],_this = $(this);
|
|
intId[i] = setInterval(function(){
|
|
if(_this.find("ul").height()<=_this.height()){
|
|
clearInterval(intId[i]);
|
|
}else{
|
|
marquee(_this, sh);
|
|
}
|
|
}, speed);
|
|
|
|
_this.hover(function(){
|
|
clearInterval(intId[i]);
|
|
},function(){
|
|
intId[i] = setInterval(function(){
|
|
if(_this.find("ul").height()<=_this.height()){
|
|
clearInterval(intId[i]);
|
|
}else{
|
|
marquee(_this, sh);
|
|
}
|
|
}, speed);
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
})(jQuery); |