(function($) {
$.fn.poposlides = function(options) {
var settings = $.extend({
auto: true, //自动播放
nav: true, //切换按钮
playspeed: 3500, //自动播放速度
fadespeed: 500, //淡入淡出速度
loop: true, //循环播放
pagination: true, //页码显示
pagecenter: true, //页码居中
prev: ".prev", //上一页按钮
next: ".next" //下一页按钮
}, options);
return this.each(function() {
var $this = $(this),
slide = $this.children(),
index = 0;
len = slide.length - 1,
slidewidth = $this.width(),
prev = settings.prev,
next = settings.next;
//初始隐藏其它页,显示当前页
if (!navigator.useragent.match(/mobile/i)) {
slide.hide();
slide.eq(index).show();
} else {
slide.css({
"opacity": "0"
});
slide.eq(index).css({
"opacity": "1"
});
};
//显示当前页
slidefadein = function() {
if (!navigator.useragent.match(/mobile/i)) {
slide.fadeout(settings.fadespeed);
slide.eq(index).fadein(settings.fadespeed);
} else {
slide.css({
"opacity": "0",
"-webkit-transition": settings.fadespeed / 1000 + "s"
});
slide.eq(index).css({
"opacity": "1",
"-webkit-transition": settings.fadespeed / 1000 + "s"
});
};
};
//翻页加,判断是否循环
slideadd = function() {
if (settings.loop) {
index == len ? index = 0 : index++;
} else {
index == len ? index = len : index++;
};
slidefadein();
};
//翻页减,判断是否循环
slideminus = function() {
if (settings.loop) {
index == 0 ? index = len : index--;
} else {
index == 0 ? index = 0 : index--;
};
slidefadein();
};
//页码
pagnation = function() {
var $paginationbox = $("
");
var paginationstr = "";
for (var i = 1; i <= len + 1; i++) {
if (i == 1) {
paginationstr += "首页";
} else if (i == len + 1) {
paginationstr += "尾页";
} else if (i == 5) {
paginationstr += "...";
} else if (i < 6) {
paginationstr += "" + i + "";
} else {
paginationstr += "" + i + "";
}
}
//paginationstr += "尾页";
$paginationbox.append(paginationstr);
$this.after($paginationbox);
$(".pagination li a").eq(index).addclass("active");
};
//当前页码
pageactive = function() {
$(".pagination li").hide();
$(".pagination li").eq(0).show();
$(".pagination li").each(function(i) {
var _this = $(this);
if (_this.attr("index") == 1) {
_this.children("a").html("首页");
} else if (_this.attr("index") == 35) {
_this.children("a").html("尾页");
} else {
_this.children("a").html(_this.attr("index"));
}
});
if (index < 3) {
$(".pagination li").eq(1).show();
$(".pagination li").eq(2).show();
$(".pagination li").eq(3).show();
$(".pagination li").eq(4).children("a").html("...");
$(".pagination li").eq(4).show();
} else if (index > 29) {
$(".pagination li").eq(29).children("a").html("...");
$(".pagination li").eq(29).show();
$(".pagination li").eq(30).show();
$(".pagination li").eq(31).show();
$(".pagination li").eq(32).show();
$(".pagination li").eq(33).show();
} else {
$(".pagination li").eq(index - 2).children("a").html("...");
$(".pagination li").eq(index - 2).show();
$(".pagination li").eq(index - 1).show();
$(".pagination li").eq(index).show();
$(".pagination li").eq(index + 1).show();
$(".pagination li").eq(index + 2).children("a").html("...");
$(".pagination li").eq(index + 2).show();
}
$(".pagination li").eq(34).show();
$(".pagination li a").removeattr("class")
$(".pagination li a").eq(index).addclass("active");
$("#buttons").attr("index", index);
}
//是否需要左右导航图标
if (settings.nav) {
var navstr = "" +
"";
$this.after(navstr);
$(next).click(function() {
slideadd();
});
$(prev).click(function() {
slideminus();
})
};
//是否需要页码
if (settings.pagination) {
pagnation();
$(prev).click(function() { pageactive(); });
$(next).click(function() { pageactive(); });
$(".pagination li").click(function() {
var idx = $(this).index() - 1;
console.log($(this).index());
index = idx;
slideadd();
pageactive();
});
};
//页码居中
if (settings.pagecenter) {
var pw = $(".pagination").width();
$(".pagination").css({
"position": "absolute",
"left": "50%",
"bottom": "-40px",
"margin-left": -pw / 2,
"z-index": "99"
})
};
//是否自动播放
if (settings.auto) {
var play = setinterval(function() {
slideadd();
pageactive();
}, settings.playspeed);
$this.nextall().hover(function() {
clearinterval(play);
},
function() {
play = setinterval(function() {
slideadd();
pageactive();
}, settings.playspeed);
});
};
});
};
})(jquery);