;(function($){
var Scrolling = function(element,options){
this.element = element;
this.defaults = {
'height': 400,
'interval': 3000
};
this.options = $.extend(this.defaults,options);
};
Scrolling.prototype = {
d_w : 0,
sort: 0,
count : 0,
scrollBtn: function(i){
var step = parseInt(i) ? parseInt(i) : 0;
var self = this;
var element = $(self.element);
var banner = element.find('.banner-inner');
banner.stop().animate({
'left': -self.d_w * step
});
return this;
},
init: function(){
var self = this;
var element = $(self.element);
self.d_w = $(document).width();
var inner = element.find('.banner-inner');
var a = inner.find('a');
self.count = a.length - 1;
var wrap = element.find('.banner-img');
wrap.css({
'height': self.defaults.height,
'width': self.d_w
});
inner.css({
'height': self.defaults.height,
'width': (self.count+1) * self.d_w
});
a.css({
'height': self.defaults.height,
'width': self.d_w
});
var pages = element.find('li');
pages.each(function(i){
var page = $(this);
page.on('mousedown',function(){
pages.removeClass('page-active');
$(this).addClass('page-active');
self.sort = i;
self.scrollBtn(self.sort);
});
});
var btns = element.find('.banner-btn');
btns.remove();
var len = pages.length;
btns.each(function(){
var btn = $(this);
btn.on('mousedown',function(){
var left = $(this).hasClass('left-btn');
var right = $(this).hasClass('right-btn');
if(left){
if(self.sort < len - 1){
self.sort += 1;
}
self.scrollBtn(self.sort);
pages.removeClass('page-active');
pages.eq(self.sort).addClass('page-active');
}
if(right){
if(self.sort > 0){
self.sort -= 1;
}
self.scrollBtn(self.sort);
pages.removeClass('page-active');
pages.eq(self.sort).addClass('page-active');
}
});
});
window.onresize = function(){
self.init();
};
return this;
},
scrollAuto: function(){
var self = this;
var banner = $(self.element).find('.banner-inner');
var element = $(self.element);
var btns = element.find('li');
function scroll(){
if(self.sort <= self.count){
banner.stop().animate({
'left': (-self.d_w * self.sort)
});
btns.removeClass('page-active');
btns.eq(self.sort).addClass('page-active');
self.sort++;
}else{
self.sort = 0;
banner.stop().animate({
'left': 0
});
}
}
setInterval(scroll, self.defaults.interval);
}
};
$.fn.deYuanBanner = function(options){
var scrolling = new Scrolling(this, options);
scrolling.init().scrollAuto();
}
})(jQuery);