一段代码

格式,风格很重要,贴一个最近写的一段代码。
不复杂,条理算是清晰(没写什么注释,但是看方法名应该看得懂)。
功能简单,但是自认为需求更改,我维护方便,放在这里留作纪念:

/**
*重要新闻循环滚动
*/

function HScroll(p){
var t = this;
t.p = jQuery.extend({},p);
t.ul = jQuery(t.p.ctn).find('ul');
t.interval = null;
t.htmlInit();
t.eventBind();
t.scrollStart();
};

HScroll.prototype.htmlInit = function(){
var t = this;
var ul = t.ul,
li = t.ul.find('li'),
liLen = li.length,
liW = li.width(),
ulW = liW * liLen;
t.dW = liW;
ul.width(ulW);
};
var fpr = HScroll.prototype;
fpr.scrollStop = function(){
var t = this;
window.clearInterval(t.interval);
};
fpr.scrollStart = function(){
var t = this;
t.interval = window.setInterval(function(){
t.scrollLeft();
},t.p.intervalTime);
};
fpr.setLastLiFrist = function(){
var t = this;
var li = t.ul.find('li').last().clone();
t.ul.find('li').last().remove();
t.ul.prepend(li);
};
fpr.setFristLiLast = function(){
var t = this;
var li = t.ul.find('li').first().clone();
t.ul.find('li').first().remove();
t.ul.append(li);
};
fpr.marginInit = function(){
var t = this;
t.ul.css('margin-left',0)
};
fpr.scrollLeft = function(){
var t = this;
t.ul.animate({
'margin-left' : -(t.dW)
},function(){
t.setFristLiLast();
t.marginInit();
});
};
fpr.scrollRight = function(){
var t = this;
t.setLastLiFrist();
t.ul.css('margin-left',-(t.dW));
t.ul.animate({
'margin-left' :0
});
};
fpr.eventBind = function(){
var t = this;
jQuery(t.p.prevCtn).click(function(){
t.scrollStop();
t.scrollLeft();
t.scrollStart();
});
jQuery(t.p.nextCtn).click(function(){
t.scrollStop();
t.scrollRight();
t.scrollStart();
});
jQuery(t.p.ctn).hover(function(){
t.scrollStop();
},function(){
t.scrollStart();
});
};
调用方法:
new HScroll({
ctn : '.scroll-ul-ctn',
intervalTime : 4000,
speed : 1000,
prevCtn : '.article-prev',
nextCtn : '.article-next'
});


 

posted @ 2012-02-08 13:46  red.hu  阅读(209)  评论(0编辑  收藏  举报