(function($){
$.extend($.fn, {
slide: function(){
this.each(function() {
var $self = $(this);
var dom = {
"wrap": $self.find(".bannerlist"),
"item": $self.find(".bannerlist li"),
"firstItem": $self.find(".bannerlist li").first(),
"lastItem": $self.find(".bannerlist li").last(),
"pagelist": null,
"pageItem": null,
}
var settings = {
"len": dom.item.length,
"auto": true,
"timer" : null,
"index" : 1,
"time" : 3000
};
var funs = {
init: function() {
if (settings.len < 2) return;
var cloneFisrt = dom.firstItem.clone();
var cloneLast = dom.lastItem.clone();
dom.wrap.append(cloneFisrt);
cloneLast.insertBefore(dom.firstItem);
var page = '<ul class="banner_bar">';
for (var i = 0; i < settings.len; i++) {
if (i == 0) {
page += '<li class="active"></li>';
} else {
page += '<li></li>';
}
}
page += '</ul>';
$self.append(page);
dom.pagelist = $self.find(".banner_bar");
dom.pageItem = dom.pagelist.find("li");
dom.item = $self.find(".bannerlist li");
settings.count = dom.item.length;
dom.wrap.css("transform", "translateX(-100%)");
this.Event();
if(settings.auto){
settings.timer = setInterval(this.Animate, settings.time);
}
},
Event: function(){
var that = this;
$self.on('click','.banner_bar li',function(){
settings.index = $(this).index() + 1;
dom.wrap.addClass("transform");
dom.wrap.css("transform", "translateX(" + -settings.index * 100 + "%)");
}).on('mouseenter','.banner_bar li',function(){
clearInterval(settings.timer)
}).on('mouseleave','.banner_bar li',function(){console.log('leave')
settings.timer = setInterval(that.Animate, settings.time);
}).on('webkitTransitionEnd','.bannerlist',function(){
dom.wrap.removeClass("transform");
if (settings.index <= 0) {
settings.index = settings.count - 2;
}
if (settings.index >= settings.count - 1) {
settings.index = 1;
}
var itemIndex = settings.index - 1;console.log(itemIndex)
dom.pageItem.removeClass("active");
dom.pageItem.eq("" + itemIndex + "").addClass("active");
dom.wrap.css("transform", "translateX(" + -settings.index * 100 + "%)");
})
},
Animate: function(){
settings.index++;
dom.wrap.addClass("transform");
dom.wrap.css("transform", "translateX(" + -settings.index * 100 + "%)");
}
}
funs.init();
})
}
})
})(window.jQuery)